Ich habe ein Multi-Modul gradle Projekt erzeugt, die so etwas wie die folgendendavon abhängen, dynamisch gradle Projekt
books
books-api
books-server
books-tests
books-client // generated using 'gradle swagger'
Die books-api
enthält service.swagger.json-Datei, die ich eine Java verwenden möchte aussieht generieren basierend auf Swagger Codegen Gradle Plugin. Das books-test
-Modul ist eine Testsuite, die den generierten Client verwendet, um Tests für den Server auszuführen.
Das Swagger Codegen Gradle Plugin erstellt ein ganzes Gradle Modul books-client
. Derzeit wird das Modul generiert, indem die Task swagger
im Stammprojekt ausgeführt wird. Ich muss diesen Schritt manuell ausführen, bevor Sie eine gradle build
für das Stammprojekt ausführen, sodass die books-test
-Modulabhängigkeit von books-client
erfüllt ist.
Gibt es trotzdem zu generieren books-client
und haben books-test
davon abhängen, nur gradle build
auf dem Root-Projekt laufen? I.e. gradle build
würde books-client
generieren und books-test
erfolgreich erstellen.
Das Ändern der API sollte einen neuen Client erstellen. Wir möchten nicht, dass der Clientcode veraltet wird, da ein manueller Schritt erforderlich ist. Alles sollte einfach funktionieren, wenn jemand das Repo auscheckt und es erstellt. – mchlstckl
Ich habe das (und es macht natürlich Sinn). Was ich nicht verstehe, ist, warum Sie das gesamte Modul erstellen müssen und nicht nur den Client, der generiert werden muss. Oder machst du das schon, und ich habe deine Frage missverstanden? Weil ich ein ähnliches Projekt habe, aber ich erstelle den API-Code aus einer Swagger-Spezifikation, und dies funktioniert ohne Probleme im Build-Prozess. –
Es scheint nicht ganz einwandfrei für mich zu funktionieren. Wenn ich keine supportingFiles erzeuge, fehlen der generierten Quelle einige Java-Dateien. Wenn ich supportingFiles erzeuge, erzeugt es das gesamte gradle-Modul. Ich möchte keine Zeit damit verbringen, die generierte Quelle zu optimieren, daher scheint die Verwendung des generierten Gradle-Moduls die beste Option zu sein. – mchlstckl