在 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]))