Ich versuche, ein Maven WAR-Projekt in zwei Module zu teilen, so dass ich eine separate JAR-Datei mit Befehlszeilen-Tools erstellen kann. Das Ergebnis hat die folgende Struktur:Multi-Modul Maven-Projekt und Steg: Lauf
pom.xml
(Verpackungpom
, hat zwei Module)project-jar/
pom.xml
(Verpackungsjar
)
project-war/
pom.xml
(Verpackungwar
, hängt vonproject-jar
)
Wenn ich mvn
Befehle von der Wurzel laufen, funktioniert alles einwandfrei. Ich möchte weiterhin mvn jetty:run
verwenden, aber dafür muss ich den Befehl im WAR-Teilprojekt ausführen. Wenn ich das tue, kann das Unterprojekt project-jar
nicht gefunden werden, so dass es nicht ausgeführt wird. Auch mvn jetty:run-war
mit einer komplett zusammengestellten WAR-Datei im Verzeichnis target
schlägt fehl, weil es zuerst versucht, das Projekt zu "bauen". Ich habe es nur geschafft, indem es project-jar
in das lokale Maven-Repository installiert hat, was nicht sehr nett ist.
Gibt es eine Möglichkeit, das Jetty-Plugin in einer Maven-Konfiguration mit mehreren Modulen zu verwenden?
Hm, das eigentlich mir nicht hilft, weil es mit einem BUILD-Fehler fehlschlägt "Artefakt konnte nicht aufgelöst werden". (das Geschwister-JAR-Projekt), bevor das Jetty-Plugin ausgeführt wird. Es scheint also, dass ich zuerst eine allgemeine Lösung für Maven brauche. :( –
@ Lukáš Maven verwendet das lokale Repository, um Abhängigkeiten aufzulösen, damit sie ** installiert werden müssen (dh Sie müssen zuerst alle Module "installieren", indem Sie mindestens einmal einen Reaktor bauen, der auf dem Elternknoten aufgebaut ist) funktionieren, selbst wenn die installierten JARs "veraltet" sind. –
Ah, ich hatte gehofft, das zu vermeiden.Eine Alternative, die ich herausgefunden habe, war, das Jetty-Plugin auf das Eltern-Plugin zu setzen und es auf die richtige WAR-Datei zu richten (und dann Jetty: run -war), aber ich werde wahrscheinlich trotzdem installieren müssen, um NetBeans glücklich zu machen –