gpt4 book ai didi

gradle - 为什么 gradle-clojure 插件会跳过 compileClojure 任务?

转载 作者:行者123 更新时间:2023-12-03 03:47:02 27 4
gpt4 key购买 nike

我正在尝试在 Clojure 中为 Intellij 编写一个插件。为此,我想用 Clojure 的 :gen-class 实现一些扩展端点。功能。我添加了 gradle-clojure 插件并在 src/main/clojure 中放置了一些 Clojure 代码.但是当我构建项目时它说

> Task :compileClojure SKIPPED

这是为什么?

另外,在相关说明中:如果我添加表达式 (throw (Exception. "abort"))到顶层的 Clojure 代码,我可以使构建崩溃。这对我来说没有意义。为什么 Clojure 代码会在构建期间执行?

最佳答案

在 Clojure 中,不需要预编译。源码第一次运行时可以编译,只要源码捆绑在.jar文件中即可。

对于 gradle-clojure,默认的 build任务将运行 checkClojure ,它将调用 Clojure load每个源目录上的函数,它加载所有的命名空间。当你加载一个命名空间时,它的表达式会按顺序执行。通常你只会放defdefn这只会定义全局变量。这样做是为了确保在捆绑到 .jar 之前没有编译器错误。

gradle-clojure compileClojure任务只会编译使用 aotNamespaces 配置的命名空间。或全部使用 aotAll() .在这种情况下,它将调用 Clojure compile在每个命名空间上。见gradle-clojure文档以获取更多信息。

有关 Clojure 编译的更多详细信息,请参阅 this documentation

关于gradle - 为什么 gradle-clojure 插件会跳过 compileClojure 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53131396/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com