В Clojure предварительная компиляция не требуется. Исходный код может быть скомпилирован при первом запуске, если исходный код упакован в файл .jar.
В частности, для gradle-clojure задача по умолчанию build
будет запускаться checkClojure
, которая вызовет функцию Clojure load
для каждого исходного каталога, которая загружает все пространства имен. Когда вы загружаете пространство имен, его выражения выполняются по порядку. Обычно вы бы указали только def
или defn
, которые бы просто определяли глобальные переменные. Это сделано для того, чтобы перед компоновкой в .jar не было ошибок компилятора.
Задача gradle-clojure compileClojure
будет компилировать только те пространства имен, которые сконфигурированы с aotNamespaces
или со всеми из них, если используется aotAll()
. В этом случае он будет вызывать Clojure compile
для каждого пространства имен. Для получения дополнительной информации см. Документацию gradle-clojure .
Подробнее о компиляции Clojure см. в этой документации