2013-02-23 242 views
3

我正在使用multimodule Maven項目。有些模塊只是簡單的JAR,但其中一些是WAR(有時WAR是其他子模塊的子模塊)。Maven MultiWAR項目:如何從根項目部署所有項目?

我使用tomcat插件的那些WAR模塊。例如:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>tomcat-maven-plugin</artifactId> 
      <version>1.1</version> 
      <configuration> 
       <server>my_local_tomcat</server> 
       <path>/registration</path> 
       <url>http://localhost:8080/manager/text</url> 
      </configuration> 
     </plugin> 

現在我必須去根,然後執行mvn clean install,然後進入包含WAR子模塊和爲每一個執行mvn tomcat:redeploy

是否可以從根模塊完成以強制Maven找到WAR並重新部署它們?

回答

3

在要部署的每個模塊,添加一個Tomcat的部署配置文件

<profiles> 
<profile> 
    <id>tomcat-deploy</id> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <configuration> 
      <server>my_local_tomcat</server> 
      <path>/registration</path> 
      <url>http://localhost:8080/manager/text</url> 
     </configuration> 
     <executions> 
      <execution> 
      <id>deploy-war</id> 
      <phase>install</phase> 
      <goals> 
       <goal>deploy-only</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 

現在運行:MVN安裝-Ptomcat部署

+0

不錯的主意,這樣做那樣的!我會在家檢查。它可以與重新部署目標一起使用,忽略不成功的取消部署? – WBAR 2013-02-25 13:01:15

+0

uhm當前沒有IOException(遠程tomcat不可用等),將失敗。也許你可以創建一個jira來使用ignoreFailure之類的參數? – 2013-02-25 15:48:27