Порядок компиляции Leiningen?
Я только учусь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
компилироватьЭто наконец работает. Есть ли способ заставить его работать с самого начала?