maven - 跳过聚合 Maven POM 中某些模块的部署

标签 maven tomcat deployment

我有一个聚合 Maven POM foobar,它有几个模块,包括 foobar-apifoobar-webfoobar-web POM 实际上创建了一个 WAR 文件,它使用 tomcat7-maven-plugin 通过 tomcat7:deploy 部署到 Tomcat目标。

如果我将 tomcat7:deploy 目标绑定(bind)到 deploy 阶段,我相信我可以在 上执行 mvn clean deploy >foobar-web 项目并将 WAR 自动部署到 Tomcat。但是,如果我在 foobar 聚合 POM 上执行此操作,它会不会提示“部署失败:在 distributionManagement 元素内的 POM 中未指定存储库元素……”?

我如何关闭多模块 Maven 项目中某些模块的部署,以便在聚合 POM 上执行 mvn deploy 不会在非 Web 项目上失败?

作为替代方案,即使我没有将 tomcat7:deploy 目标绑定(bind)到 deploy 阶段,我如何调用 tomcat7:deploy 聚合 POM 的目标并防止那些没有定义 tomcat7-maven-plugin 的模块出现错误?

最佳答案

您可能混淆了 tomcat7-maven-plugin 的 maven deploy phase 和目标 deploy

Maven deploy 是 Maven 构建生命周期的阶段,旨在将结果 Artifact 复制到远程存储库。 更多信息:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

tomcat7:deploy 默认绑定(bind)到 package phase,所以如果你不改变这个设置,你只能通过运行 mvn clean package deploy to tomacat

如果你想保持 tomcat7:deploy 绑定(bind)到 deploy maven 阶段,你可以在你的模块中添加

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

但这阻碍了这些模块的所有 Maven 部署。

关于maven - 跳过聚合 Maven POM 中某些模块的部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41154678/

相关文章:

java - Maven pom.xml 依赖项 - 调整

maven - 如何通过Maven正确安装和配置JSF库?

ios - 从希腊部署 iOS 应用程序

ios - 有关在 iOS 设备上部署应用程序进行 Beta 测试的任何指示

java - 在没有本地 persistence.xml 的情况下使用 JPA @StaticMetamodel 类? (远程 EJB)

java - Java 5 中的 CXF - 额外的 Maven 依赖项

java - -source 6 不支持 Lambda 表达式

java - Tomcat,结果集中没有数据?

java - 在 tomcat 上部署时 Servlet 抛出异常

.net - 使用 NGEN 更新 RemoteAPP 应用程序的正确方法