我尝试在org.apache.lucene
项目中导入两个lein
个罐子并获得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 *]))
感谢您的帮助。
答案 0 :(得分:3)
您需要导入要单独使用的每个类,因为clojure不允许您在Java导入时指定通配符。
请参阅此答案以获得更一般的问题: https://stackoverflow.com/a/1213628/66722
所以,例如:
(ns clj_processing_tweets.core
(:import [org.apache.lucene.analysis Analyzer Tokenizer]))