【问题标题】:Maven release plugin: How to deploy only a distribution jar on release:performMaven 发布插件:如何在发布时仅部署分发 jar:执行
【发布时间】:2013-07-13 06:30:16
【问题描述】:

我有一个多模块项目,正在构建的最后一个模块是应用程序的分发 zip。

core/
plugins/
plugins/logger
plugins/social
...
assemble/

我想以 Maven 工件的形式分发应用程序。而且我不想用它来部署模块工件。

但是release 插件需要从根目录运行(我想做所有常见的事情,比如更新版本、标记、提交这些更改等)

如何告诉发布插件部署哪些工件?

请注意,这与仅限制部署插件不同,因为发布插件似乎以某种内部方式调用部署插件。 (不确定。)

【问题讨论】:

    标签: maven deployment maven-release-plugin


    【解决方案1】:

    似乎 Release 插件行为已修复,现在可以正确调用 deploy:deploy

    所以我使用我的标准技巧来抑制默认插件执行。根pom.xml

         <!-- Don't deploy all artifacts. Overridden in submodules. -->         
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-deploy-plugin</artifactId>
             <executions> <execution> <id>default-deploy</id> <phase>none</phase> </execution></executions>
         </plugin>
    

    还有 dist 模块pom.xml:

            <!-- Enable deploy for this submodule. -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <executions> <execution> <id>default-deploy</id> <phase>deploy</phase> </execution></executions>
            </plugin>
    

    【讨论】:

      【解决方案2】:

      release:perform 并没有那么神奇。它通过在 release:prepare 期间创建的标签检查代码。默认目标是“部署”。如果您在 pom.xml 的 distributionManagement 中指定了一个站点,它将是“deploy site-deploy”。这些步骤也可以手动完成。

      如果您从不想部署这些工件(不是在开发或发布期间),我更喜欢skip,而不是使用未定义的阶段。 如果仅在发布期间需要,则应在 release-profile 中指定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-09
        • 2013-01-09
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        • 1970-01-01
        • 1970-01-01
        • 2021-11-10
        相关资源
        最近更新 更多