Ordem de compilação de Leiningen?
Estou apenas aprendendo alein
e gostaria de usar de uma fonte Java uma classe criada pordeftype
em uma fonte Clojure. Isso não foi abordado no tutorial básico e não consigo fazê-lo funcionar corretamente.
O problema é que a fonte Java não pode importar a classe Clojure, uma vez que ainda não foi compilada. E a classe Clojure não é compilada, já que a compilação é anulada pela fonte Java.
Eu dou um exemplo mínimo:
Crie um novo projeto com:
lein new app javafoo
adicionar àproject.clj
:aot :all
:java-source-paths ["src/java"]
Coloque emsrc/javafoo/core.clj
:
(ns javafoo.core)
(deftype PPoint [x y])
Coloque emsrc/java/JavaFoo.java
:
package foo.java;
import javafoo.core.PPoint;
public class JavaFoo {
public static void main(String[] args) {
System.out.println("JavaFoo");
}
}
Tente compilar
lein compile
Ele falha compackage javafoo.core doesn't exist
. Então agora eu tenho que
:java-source-paths
CompilarDescomentar:java-source-paths
CompilarFinalmente funciona. Existe uma maneira de fazer isso funcionar desde o começo?