在clojure进口lucene罐子

时间:2015-02-08 18:06:38

标签: java clojure lucene leiningen

我尝试在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 *]))

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您需要导入要单独使用的每个类,因为clojure不允许您在Java导入时指定通配符。

请参阅此答案以获得更一般的问题: https://stackoverflow.com/a/1213628/66722

所以,例如:

(ns clj_processing_tweets.core
  (:import [org.apache.lucene.analysis Analyzer Tokenizer]))