私はmvn Tomcat7-maven-plugin:run -am -pl :foo
を使用して、一度に1つのプロジェクトのみを正常に実行しています Tomcatのようなものをここに示します 。ここで、複数のモジュールを同じポートで異なるコンテキストで実行したいと思います。たとえば、私は欲しいです:
/ => foo.war
/bar => bar.war
これが私が扱ってきたpom.xmlスニペットの例です:
<project><!-- ... -->
<build><!-- ... -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<path>/</path>
<port>8080</port>
<addContextWarDependencies>true</addContextWarDependencies>
<addWarDependenciesInClassloader>true</addWarDependenciesInClassloader>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}/</warSourceDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bar</artifactId>
<version>${project.version}</version>
<type>war</type>
<scope>Tomcat</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
<pluginRepositories>
<pluginRepository>
<id>Apache.snapshots</id>
<name>Apache Snapshots</name>
<url>http://repository.Apache.org/content/groups/snapshots-group/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
これはTomcat7-maven-plugin:run
プラグインで可能ですか?うまく機能させるための正しい構文を見つけるのに苦労しています。 maven
コマンドを実行して実行すると、プロジェクト階層で最初に見つかったコマンドのみが実行されます。そして、それらを<fork>true</fork>
で実行するか、明らかに異なる端末から実行すると、「Java.net.BindException:アドレスはすでに使用されています:8080」が表示されます。
すでに提案されているように、プラグイン構成の<webapps>
セクションを使用しますが、すべてのWebアプリにパラメーター<asWebapp>true</asWebapp>
を追加します。
<webapps>
<webapp>
<groupId>com.company</groupId>
<artifactId>mywebapp</artifactId>
<version>1.0</version>
<type>war</type>
<asWebapp>true</asWebapp>
</webapp>
<webapp>
<groupId>com.company</groupId>
<artifactId>mywebapp2</artifactId>
<version>2.0</version>
<type>war</type>
<asWebapp>true</asWebapp>
</webapp>
</webapps>
これらの追加のWebアプリは、デフォルトで${artifactId}
コンテキストパスを使用してデプロイされます。
このパラメーターがないと、mvn Tomcat7:run
(安定バージョン2.0で試してみました)のようなものを実行すると、追加のWebアプリがサイレントに破棄されるようです。 関連するJiraの問題 「下位互換性」のために行われたことを示します。
次のようなものを使用します
<configuration>
<webapps>
<webapp>
<groupId>com.company</groupId>
<artifactId>mywebapp</artifactId>
<version>1.0</version>
<type>war</type>
</webapp>
</webapps>
</configuration>