1

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

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

4

1 回答 1

0

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

于 2014-02-27T17:08:15.957 回答