Ich versuche eine Webanwendung zu erstellen, die auf mehreren maven Modulen basiert. Eines der Module heißt "web" und ist allein dafür verantwortlich, einen Krieg zu verpacken, der mithilfe des tomcat7-maven-plugins auf einem Tomcat bereitgestellt werden soll. Ich habe folgende Module in meinem parent.pom definiert:tomcat-maven-plugin mit mehreren Modulen, die nur einen Krieg aufbauen
- gemeinsame
- Persistenz
- Persistenz-embedded
- Service
- Rest
- web
Alle von ihnen sind in einem Web-Anwendung-Krieg kombiniert, hat das Web-Modul Verpackung in den Krieg gesetzt. Das Problem ist, dass meine War-Datei für jedes Submodul (und das Haupt-Eltern-Modul) immer und immer wieder bereitgestellt wird, wenn ich mvn tomcat7: redeploy starte, was zu 7 Bereitstellungen führt. Anscheinend ist das nicht so, wie es sein sollte. Die tomcat7-Maven-Plugin-Konfiguration sieht derzeit wie folgt aus:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<ignorePackaging>true</ignorePackaging>
<url>http://localhost:8080/manager/text</url>
<server>tomcatServer</server>
<path>/webapp</path>
<warFile> /home/username/dev/maven-multimodule-example/web/target/maven-multimodule-example-1.0-SNAPSHOT.war</warFile>
<username>admin</username>
<password>password</password>
</configuration>
</plugin>
Wie Sie sehen können, ich brauche die warFile angeben (die keine Lösung, sondern ein Hack, weil ich nicht $ verwenden können {Projekt .basedir}, die zum Submodul-dir führen würde), damit es funktioniert.
Wenn ich jedoch die Webapplikation mit mvn tomcat7: run ausführe, sieht das ganz gut aus, weil die anderen nicht warmerzeugenden Module vom Plugin übersprungen werden.
Wie kann ich das Plugin den richtigen Weg zur Bereitstellung der WAR-Datei nur einmal konfigurieren?
Wo genau haben Sie das Tomcat-Plugin konfiguriert? Welches POM, welche Sektion im POM? – dunni
in der Haupt-Eltern-Pom – Daniel