Порядок компиляции 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компилировать

Это наконец работает. Есть ли способ заставить его работать с самого начала?

Ответы на вопрос(1)

Ваш ответ на вопрос