Ahead of Time (AOT) Compilation of Clojure Libraries in Mave



我在Clojure/Java混合环境中编程。我正在使用Maven,我的一些依赖项是来自 clojars.org 的Clojure库。

现在,我需要在Java代码之前对Clojure代码执行AOT编译,因为Java代码引用了Clojure中定义的记录。我如何使用 Maven 和 clojure-maven-plugin 来实现这一点。

如果命名空间是 AOT 编译的,则它需要或使用的所有命名空间也将进行 AOT 编译。在 Clojure 中,通常只有一个顶级 Clojure 命名空间,在这种情况下,AOT 编译该命名空间就足够了。如果你从Java调用Clojure,可以有多个顶级的Clojure命名空间,这是一个弄清楚它们是什么并确保它们都是AOT编译的问题。由于 Clojure 不允许任何类型的递归依赖,因此命名空间是否是顶级并不是一个模棱两可的问题;顶级命名空间是任何其他 Clojure 命名空间不需要或使用

的命名空间。

最新更新