我有一个聚合的Maven POM foobar,它有几个模块,包括foobar-api和foobar-web。Tomcat实际上创建了一个WAR文件,它使用tomcat7-maven-plugin通过tomcat7:deploy目标部署到foobar-web。
如果我将tomcat7:deploy目标绑定到deploy阶段,我相信我可以在foobar-web项目上执行mvn clean deploy,并将WAR自动部署到Tomcat。但是,如果我在存储库聚合POM上执行此操作,它不会报错“部署失败: distributionManagement元素…内的POM中未指定存储库元素”。?
如何关闭多模块Maven项目中某些模块的部署,以便在聚合POM上执行mvn deploy不会在非web项目上失败?
作为另一种选择,即使我没有将tomcat7:deploy目标绑定到deploy阶段,我如何在聚合POM上调用tomcat7:deploy目标并防止那些没有定义tomcat7-maven-plugin的模块出现错误?
发布于 2016-12-16 03:34:02
您可能混淆了tomcat7-maven-plugin的maven deploy phase和goal deploy。
Maven deploy是maven构建生命周期的一个阶段,旨在将结果工件复制到远程存储库。更多信息:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Tomcat7:默认情况下deploy是绑定到包阶段,所以如果你不改变这个设置,你只能通过运行mvn clean package来deploy to tomacat。
如果您希望将tomcat7:deploy绑定保留到deploy maven阶段,可以在模块中添加
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>但这个刹车完全是maven部署的那些模块。
https://stackoverflow.com/questions/41154678
复制相似问题