【问题标题】:Skipping deployment for some modules in an aggregate Maven POM跳过聚合 Maven POM 中某些模块的部署
【发布时间】:2016-12-15 00:51:25
【问题描述】:

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

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

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

作为替代方案,即使我没有将tomcat7:deploy 目标绑定到deploy 阶段,我如何在聚合POM 上调用tomcat7:deploy 目标并防止那些没有@ 的模块出错987654336@定义了吗?

【问题讨论】:

    标签: maven tomcat deployment


    【解决方案1】:

    你可能混淆了 maven deploy phase 和目标 deploytomcat7-maven-plugin

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

    tomcat7:deploy 默认绑定到包阶段,所以如果你不改变这个设置,你只能通过运行mvn clean packagedeploy to tomacat

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

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

    但这会阻碍这些模块的所有 maven 部署。

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 2020-10-11
      • 2019-10-10
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      相关资源
      最近更新 更多