Порядок компиляции Leiningen?
я только учусьlein
, и я'я хотел бы использовать из источника Java класс, созданныйdeftype
в Clojure источнике. Это не былот в базовом уроке, и я не могузаставить его работать должным образом.
Проблема в том, что источник Java можетимпортировать класс Clojure, так как он нееще не скомпилировано. И Clojure класс неt скомпилирован, поскольку компиляция прерывается исходным кодом 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
компилироватьЭто наконец работает. Есть ли способ заставить его работать с самого начала?