使用 lein 向 clojure 项目添加依赖项



尽管向我的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

我收到此错误:

没有这样的命名空间:opennlp.nlp,无法找到opennlp/nlp.cljs,opennlp

/nlp.cljc或提供"opennlp.nlp"的JavaScript源代码

最奇怪的部分是,当我运行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项目中使用它。

没有这样的命名空间:opennlp.nlp,无法找到opennlp/nlp.cljs,opennlp

/nlp.cljc或提供"opennlp.nlp"的JavaScript源代码

编译器试图寻找ClojureScript代码(扩展.cljs(或与Clojure和ClojureScript(扩展.cljc(或纯JavaScript兼容,但没有找到。

最新更新