0

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

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

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

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

告诉发布插件要部署哪些工件的方法是什么?

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

4

2 回答 2

0

似乎 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>
于 2013-07-13T07:22:47.270 回答
0

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

如果您从不想部署这些工件(不是在开发或发布期间),我宁愿跳过使用未定义的阶段。如果这仅在发布期间需要,您应该在release-profile中指定它。

于 2013-07-13T10:55:44.927 回答