【发布时间】:2013-10-03 11:02:32
【问题描述】:
我只是在学习如何lein,我想从 Java 源代码中使用
由deftype 在 Clojure 源代码中创建的类。这在基本篇中没有涉及
教程,我无法让它正常工作。
问题是 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 - 编译
终于成功了。有没有办法让它从一开始就起作用?
【问题讨论】: