我在混合的Clojure / Java环境中编程。我正在使用Maven,我的一些依赖项是来自clojars.org的Clojure库。
现在,我需要在Java代码之前对Clojure代码执行AOT编译,因为Java代码引用了Clojure中定义的记录。如何使用Maven和clojure-maven-plugin实现这一目标。
答案 0 :(得分:0)
如果命名空间是AOT编译的,那么它需要或使用的所有命名空间也将被AOT编译。在Clojure中,通常会有一个顶级Clojure命名空间,在这种情况下,AOT编译该命名空间就足够了。如果你从Java调用Clojure,可能有多个顶级Clojure名称空间,这是一个问题,弄清楚它们都是什么,并确保所有这些都是AOT编译。由于Clojure不允许任何类型的递归依赖,因此命名空间是否是顶级的并不是一个模棱两可的问题;顶级命名空间是任何其他Clojure命名空间都不需要或使用的命名空间。