Ahead of Time (AOT) Сборник Clojure библиотек в Maven

Я программирую в смешанной среде Clojure/Java. Я использую Maven, и некоторые из моих зависимостей - библиотеки Clojure с clojars.org.

Теперь мне нужно выполнить компиляцию AOT для кода Clojure перед кодом Java, поскольку код Java ссылается на записи, определенные в Clojure. Как я могу добиться этого, используя Maven и Clojure-Maven-плагин.

1 ответ

Если пространство имен скомпилировано AOT, все пространства имен, которые ему требуются или используются, также будут скомпилированы AOT. В Clojure обычно используется единственное пространство имен Clojure верхнего уровня, и в этом случае AOT будет достаточно для компиляции этого пространства имен. Если вы вызываете Clojure из Java, возможно иметь несколько пространств имен Clojure верхнего уровня, это вопрос выяснения того, чем они все являются, и проверки того, что все они скомпилированы AOT. Поскольку Clojure не допускает рекурсивных зависимостей любого рода, вопрос о том, является ли пространство имен верхним, не является неоднозначным вопросом; Пространство имен верхнего уровня - это пространство, которое не требуется или не используется любым другим пространством имен Clojure.

Другие вопросы по тегам