使用 lein 将依赖项添加到 clojure 项目

Adding dependencies to clojure projects using lein

尽管将 desired dependency 添加到我的 project.clj 文件中,

(defproject word-tree "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}

  :dependencies [[org.clojure/clojure "1.10.1"]
                 [org.clojure/clojurescript "1.10.520"]
                 [clojure-opennlp "0.5.0"] ; <----------------------here
                 [reagent "0.8.1"]]
 ...

我无法访问依赖项提供的功能。

在我的一个文件中引用命名空间后,

(ns word-tree.suffix-tree
  (:require [clojure.string :as str]
            [opennlp.nlp :as nlp])) ; <-----this is the namespace of the dependency

我收到这个错误:

No such namespace: opennlp.nlp, could not locate opennlp/nlp.cljs, opennlp/nlp.cljc, or JavaScript source providing "opennlp.nlp"

最奇怪的是,当我 运行 lein deps :tree 依赖出现时!

$ lein deps :tree
...
[cider/piggieback "0.4.1" :scope "test"]
 [cljfmt "0.5.7"]
   [rewrite-clj "0.5.2"]
   [rewrite-cljs "0.4.3"]
 [clojure-complete "0.2.5" :exclusions [[org.clojure/clojure]]]
 [clojure-opennlp "0.5.0"] <------------------------------------------------here!!!
   [instaparse "1.4.9"]
   [org.apache.opennlp/opennlp-tools "1.9.0"]
 [figwheel-sidecar "0.5.19" :scope "test"]
...

对于我的项目,我真的很想使用这个依赖项,但它不起作用。任何建议将是最受欢迎的。谢谢。

在我看来,问题在于该库仅适用于 JVM 上的 Clojure,而您正试图在 ClojureScript 项目中使用它。

No such namespace: opennlp.nlp, could not locate opennlp/nlp.cljs, opennlp/nlp.cljc, or JavaScript source providing "opennlp.nlp"

编译器尝试查找 ClojureScript 代码(扩展名 .cljs)或与 Clojure 和 ClojureScript 兼容(扩展名 .cljc)或普通 JavaScript,但找到 none.