我是 gradle 的新手,并且有一个多项目 gradle 构建,想要向其中一个项目添加 WSDL2Java 相关任务。我已经编写了生成、编译、将生成的存根打包到 jar 中并将其添加到类路径中的必要任务。现在,我想在 java 编译开始之前执行这些任务。
下面是我如何编写新任务
task genClasses(type: JavaExec) {
//Run WSDL2Java and generate java source files.
}
task compileClasses(dependsOn:'genClasses'){
//Use ant.javac or add type:JavaCompile in task defination as shown below
// task compileClasses(dependsOn:'genClasses',type:JavaCompile)
}
task packageClasses(dependsOn:'compileClasses',type:Jar){
//package my jar
}
task createStubs(dependsOn: 'packageClasses'){
//add created jar to the classpath
}
compileJava.dependsOn createStubs
构建失败并出现异常并显示以下消息
Circular dependency between tasks. Cycle includes [task ':projectx:genWsdlClasses', task ':projectx:classes'].
我发现 compileClasses 任务以某种方式导致了这种循环依赖,但不知道如何摆脱它?
是否有其他更好或惯用的方法来执行此源代码生成、生成的源代码的编译、打包并将其添加到主源代码集类路径中,然后再构建主源代码?