我只是在学习lein
,我想从Java来源使用
由Clojure源中的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
终于可以了。有没有办法让它从一开始就起作用?
最佳答案
将此行添加到您的project.clj
中:
:prep-tasks [["compile" "javafoo.core"] "javac"]