4

私はclojureにまったく精通しておらず、構築しようとしているプロジェクトのソースを持っています。プロジェクトにはproject.cljファイルがあります。これは、Googleがleinビルドツールを使用する必要があることを意味すると言っています。でも:

$ lein compile #lein jar does the same thing
Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: Could not locate testui/core__init.class oCompiling testui.core
r testui/core.clj on classpath

project.cljが壊れているのではないかと思います。core.cljはsrc/com / foodient / semanticanalysis / testuiにあり、project.cljは次のようになります。

(defproject testui "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [org.apache.poi/poi "3.8-beta4"]
                 [gate-clj "1.0.0"]]
  :aot [testui.core]
  :main testui.core
  :run-aliases {:test testui.core/-main})

何か案は?

4

3 に答える 3

4

leinプロジェクトを設定し、名前にbene-csv(私の1つ)のようにそのClojuristicダッシュが含まれている場合、leinnewbene-csvはいくつかのディレクトリとを作成し./bene-csv/project.cljます。私のcore.cljはにあり./bene-csv/src/bene_csv/core.cljます。bene_csvアンダースコアを優先してダッシュが削除されていることに注意してください。

あなたの問題に関しては、おそらくcore.cljは、leinが期待する場所にありません./testui/src/testui/core.clj。これがお役に立てば幸いです。

于 2012-05-20T12:57:31.020 に答える
3

問題は、core.cljが正しいディレクトリにないことだと思います。src/testuiディレクトリにあるはずです。

于 2012-05-20T12:30:38.253 に答える
3

私の推測では、コードへの参照をから変更する必要があります

testui.core

com.foodient.semanticanalysis.testui.core

その理由は、最後のドットの前の名前空間の部分がパッケージ名に対応しているためです(この用語はjavaとjvmに由来します)

あなたはあなたの情報源が次の場所にあることを示しました:

src/com/foodient/semanticanalysis/testui

したがって、パッケージ名はcom.foodient.semanticanalysis.testui

おそらく、clojureソースファイルの名前空間宣言もこの規則に一致するように更新する必要があります(またはソースをに移動しますsrc/testui)。

それが役に立てば幸い。

于 2012-05-20T19:28:21.213 に答える