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?
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich die Jaxb-Plugin verfügbar hier. Mein Gradle-build-file sieht wie folgt aus:
Ich glaube, dass die jaxb-Klassen, die Sie wollen. Hilft das?
InformationsquelleAutor Spina
Verwenden Sie das plugin "Nein.nils.wsdl2java"
https://plugins.gradle.org/plugin/no.nils.wsdl2java
Das plugin kümmert sich um Einhaken es in der bauen und reinigen Aufgaben.
InformationsquelleAutor nilsmagnus