2016-12-15 51 views
0

我有一個聚合Maven POM foobar,它有幾個模塊,包括foobar-apifoobar-webfoobar-web POM實際上創建了一個WAR文件,並使用tomcat7:deploy目標使用tomcat7-maven-plugin部署到Tomcat。跳過部分模塊的聚合Maven POM

如果我綁定tomcat7:deploy目標到deploy階段,我相信我會在foobar-web項目做一個mvn clean deploy,並有WAR被自動部署到Tomcat。但是,如果我要在foobar聚合POM上執行此操作,是不是會抱怨「部署失敗:存儲庫元素未在distributionManagement元素中的POM中指定......」?

如何關閉多模塊Maven項目中某些模塊的部署,以便在非Web項目上對聚合POM執行mvn deploy不會失敗?

作爲替代,即使我不綁定tomcat7:deploy目標到deploy階段,我怎麼能調用的總POM的tomcat7:deploy目標,防止出現錯誤對於那些沒有tomcat7-maven-plugin定義的模塊?

回答

0

您可能會困惑maven deploy phasetomcat7-maven-plugin的目標deploy

Maven deploy是Maven構建生命週期的階段,它旨在將結果工件複製到遠程存儲庫。 更多信息:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

tomcat7:默認情況下部署的綁定包裝階段,所以如果你不chnge此設置,你只能通過deploy to tomacat乳寧mvn clean package

如果你想留tomcat7:deploy結合deploy Maven的階段,你可以在你的模塊

<properties> 
<maven.deploy.skip>true</maven.deploy.skip> 
</properties> 

增加,但這些模塊的這種剎車在所有行家部署。