我failry新摇篮,并有一个多gradle这个构建到要添加WSDL2Java的相关任务的项目之一。 我已经编写必要的任务生成,编译,打包生成的存根成一个jar并将其添加到类路径中。 现在,我想在java编译开始之前执行这些任务。摇篮:从WSDL和XSD源并将其添加到主类路径编译
下面是我如何编码的新任务
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任务在某种程度上是造成这种循环依赖,但不知道如何摆脱它?
是否有其他更好的或惯用的方式来执行这个源代码的生成,生成的来源,包装编译和之前的主要来源得到建立其添加到主sourceset类路径?
如果该错误消息说,为了配合你的gradle这个文件“genClasses”?或者,也许第一个任务实际上应该被命名为genWsdlClasses?我并不想挑剔;我想确保我不会错过任何东西。 –
我复制粘贴你的代码放到一个文件的Gradle,增加了Java插件,去掉了JavaExec类型和它运行得很好。当然,它基本上什么都没做,但它工作。 –
同样在这里。对我来说工作得很好。你可以请发布完整的构建脚本? –