【发布时间】:2012-10-15 15:43:42
【问题描述】:
我正在尝试在如下目录结构中构建包含一些 java 源代码和 clojure 源代码的项目:
src
`-- main
|-- clojure
| `-- appc
| `-- core.clj
`-- java
`-- appj
`-- AppStarter.java
我已经在我的 gradle 构建文件中加载了 java、clojure 和 application 插件。 Clojure 插件来自https://bitbucket.org/kotarak/clojuresque/overview,版本1.5.2。
这里的clojure 代码core.clj 包含使用Java 编写的类的代码。但是java源码中没有任何依赖clojure代码的东西。
现在,当我执行gradle tasks --all 时,我明白了
...
classes - Assembles the main classes.
compileClojure - Compile the main Clojure source.
compileJava - Compiles the main Java source.
processResources - Processes the main resources.
...
所以,build 任务将首先编译我的 clojure 源代码,然后是 java 源代码。这显然是行不通的,因为 clojure 代码依赖于 java 部分。所以我需要compileJava 在compileClojure 之前发生。
更改应用clojure 和java 插件的顺序没有任何效果。
由于 clojure 插件是新的,我尝试使用 groovy 和 scala 插件。在每种情况下,我都得到了以下结果。
...
classes - Assembles the main classes.
compileGroovy - Compile the main Groovy source.
compileJava - Compiles the main Java source.
processResources - Processes the main resources.
...
和
...
classes - Assembles the main classes.
compileJava - Compiles the main Java source.
compileScala - Compile the main Scala source.
processResources - Processes the main resources.
...
我想应该有办法重新排序这些,对吧?我在文档中找不到(尽管它们真的很好!)。有什么方法可以告诉 gradle 先编译我的 java 源码 build,然后再编译 clojure 源码?
【问题讨论】:
标签: java groovy clojure build-process gradle