私はgradleに不慣れで、プロジェクトの1つにWSDL2Java関連のタスクを追加したいマルチプロジェクトgradleビルドを持っています。生成、コンパイル、生成されたスタブを 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 タスクがどういうわけかこの循環依存を引き起こしていることがわかりましたが、それを取り除く方法がわかりませんか?
メイン ソースがビルドされる前に、このソース生成、生成されたソースのコンパイル、パッケージ化、およびメイン ソースセット クラスパスへの追加を実行するための、より優れた、または慣用的な方法はありますか?