我一直使用mvn tomcat7-maven-plugin:run -am -pl :foo
成功地在Tomcat like is shown here一次只運行一個項目。現在我想讓多個模塊在相同的端口但不同的環境下運行。舉例來說,我想有:如何使用maven插件tomcat7:運行多個上下文(WARs)?
/ => 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」。
我假設這是一個配置塊來定義作爲根在當前模塊內運行的上下文?也就是說,如何將我的「bar.war」添加爲「/ bar」作爲「/」添加到我的「foo.war」的pom.xml中?它沒有直接工作,因爲依賴關係,但我仍然在玩它。 – mckamey 2012-08-15 22:41:06
我似乎無法得到它來處理「bar.war」的依賴關係。我已經嘗試明確地添加它們像這樣http://stackoverflow.com/a/9928987/43217,但沒有運氣。 – mckamey 2012-08-15 23:04:14
此外,如果我嘗試將「bar.war」作爲範圍「tomcat」的依賴項添加到模塊本身,那麼它會先構建,而tomcat7:run命令會嘗試執行它。 – mckamey 2012-08-15 23:23:19