Clojure ソースでlein作成されたクラスを Java ソースから使用したいと考えています。deftypeこれは基本的なチュートリアルではカバーされておらず、正しく動作させることができません。
問題は、Java ソースがまだコンパイルされていないため、Clojure クラスをインポートできないことです。また、Clojure クラスはコンパイルされません。これは、コンパイルが Java ソースによって中止されるためです。
最小限の例を挙げます:
以下を使用して新しいプロジェクトを作成します。
lein new app javafoo追加
project.clj:aot :all :java-source-paths ["src/java"]に入れる
src/javafoo/core.clj:(ns javafoo.core) (deftype PPoint [x y])に入れる
src/java/JavaFoo.java:package foo.java; import javafoo.core.PPoint; public class JavaFoo { public static void main(String[] args) { System.out.println("JavaFoo"); } }コンパイルしてみる
lein compile
で失敗しpackage javafoo.core doesn't existます。だから今私はしなければならない
- コメントアウト
:java-source-paths - コンパイル
- コメント解除
:java-source-paths - コンパイル
それは最終的に動作します。最初からうまくいく方法はありますか?