在 Clojure 中导入 Lucene 罐子
importing lucene jars in clojure
我尝试在 lein
项目中导入两个 org.apache.lucene
jar 并得到一个 ClassNotFoundException
。
这是我的 project.clj
文件:
(defproject clj_processing_tweets "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.6.0"]
[org.apache.lucene/lucene-core "4.10.3"]
[org.apache.lucene/lucene-analyzers-common "4.10.3"]]
:profiles {:dev {:dependencies [[speclj "3.1.0"]]}}
:plugins [[speclj "3.1.0"]]
:test-paths ["spec"])
在 运行 lein deps
之后,我将 core.clj
发送到 lein repl,我得到了
CompilerException java.lang.ClassNotFoundException: org.apache.lucene.analysis.*, compiling:(clj_processing_tweets/core.
clj:1:36)
这是我的 core.clj
文件:
(ns clj_processing_tweets.core
(:import [org.apache.lucene.analysis *]))
感谢您的帮助。
您需要导入每个要单独使用的 class,因为 clojure 不允许您在 Java 导入时指定通配符。
请参阅此对更一般问题的回答:
因此,例如:
(ns clj_processing_tweets.core
(:import [org.apache.lucene.analysis Analyzer Tokenizer]))
我尝试在 lein
项目中导入两个 org.apache.lucene
jar 并得到一个 ClassNotFoundException
。
这是我的 project.clj
文件:
(defproject clj_processing_tweets "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.6.0"]
[org.apache.lucene/lucene-core "4.10.3"]
[org.apache.lucene/lucene-analyzers-common "4.10.3"]]
:profiles {:dev {:dependencies [[speclj "3.1.0"]]}}
:plugins [[speclj "3.1.0"]]
:test-paths ["spec"])
在 运行 lein deps
之后,我将 core.clj
发送到 lein repl,我得到了
CompilerException java.lang.ClassNotFoundException: org.apache.lucene.analysis.*, compiling:(clj_processing_tweets/core.
clj:1:36)
这是我的 core.clj
文件:
(ns clj_processing_tweets.core
(:import [org.apache.lucene.analysis *]))
感谢您的帮助。
您需要导入每个要单独使用的 class,因为 clojure 不允许您在 Java 导入时指定通配符。
请参阅此对更一般问题的回答:
因此,例如:
(ns clj_processing_tweets.core
(:import [org.apache.lucene.analysis Analyzer Tokenizer]))