Gradle : erstellen von Quellen aus der WSDL - & XSD und hinzufügen zum main-classpath für die Zusammenstellung

Ich bin failry neue gradle und haben ein multiproject gradle-build auf die hinzufügen möchten WSDL2Java-bezogenen Aufgaben zu einem Projekt.
Ich habe codiert, die notwendigen Aufgaben zu generieren,kompilieren,Verpacken Sie die generierten stubs in ein Gefäß und fügen Sie dem classpath.
Nun , ich möchte, um diese Aufgaben zu erfüllen, bevor der java-Kompilierung gestartet wird.

Unten ist, wie ich codiert die neuen Aufgaben

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

Der build fehlschlägt, mit Ausnahme und zeigt folgende Nachricht

Circular dependency between tasks. Cycle includes [task ':projectx:genWsdlClasses', task ':projectx:classes'].

Ich herausgefunden, dass die compileClasses Aufgaben irgendwie verursacht diese zirkuläre Abhängigkeit, aber nicht sicher sind, wie Sie es loswerden?

Gibt es andere besser oder idiomatischen Möglichkeiten zum ausführen dieser Quellcode-Generierung, Kompilierung des generierten source -, Verpackungs-und hinzufügen, um die Haupt-sourceset classpath vor die wichtigste Quelle bekommt bauen?

Sollte die Fehlermeldung sagen "genClasses", um Ihre gradle-Datei? Oder vielleicht die erste Aufgabe sollte eigentlich benannt werden genWsdlClasses? Ich versuche nicht zu kleinlich; ich will, um sicherzustellen, dass ich nicht etwas fehlt.
Ich kopieren-einfügen, den code in einen gradle-Datei Hinzugefügt, die das java-plugin entfernt die JavaExec Typ und es lief alles wunderbar. Zugegeben, es hat im Grunde nichts, aber es funktionierte.
Hier gilt das gleiche. Funktioniert gut für mich. Können Sie bitte das vollständige build-Skript?

InformationsquelleAutor Santosh Gokak | 2013-06-11

Schreibe einen Kommentar