Maven多模块项目发布管理

时间:2011-12-29 00:58:25

标签: maven maven-3 release-management maven-release-plugin

我有一个Maven项目,如下所示:

 - enterprise-pom

 - commons

 - core
   - domain
   - dao
   - search
   - importer-batch-app
   - processor-batch-app

 - systems
   - server-system
   - client-system

核心取决于企业和普通。

我刚刚通过以下方式努力发布3.0.0核心:

Release 3.0.0 of enterprise-pom
Release 3.0.0 of commons
Release 3.0.0 of core

所有这些都是3.0.1-SNAPSHOT,并且在SVN中为3.0.0创建了一个标签。

我们不想发布系统。所以它仍然在3.0.0-SNAPSHOT。

问题:

我是否应该手动将系统 pom更改为3.0.1-SNAPSHOT而不释放它(因为它根本不会被使用)?

系统依赖于核心。目前依赖性仍然是3.0.0-SNAPSHOT。应该更新什么?

1 个答案:

答案 0 :(得分:1)

通常答案是:它取决于。

系统的版本号:

如果您计划一起发布,您可能应该更改版本号,因为一个发布过程中的所有内容都应该具有相同的版本(不是强制性的,但不知何故默认)。

如果子模块具有并且将具有不同的释放周期,则不要手动更改它。

系统的依赖性:

如果开发人员在IDE中一次性打开所有内容,则应手动将依赖关系调整为3.0.1-SNAPSHOT,以免混淆。 如果他们通过子项目打开子项目,您应该将依赖项更改为已发布的版本3.0.0,并像处理任何其他第三方库一样处理它。

如果基本上所有内容都具有相同的发布周期,但现在您不希望公开提供系统工件,您也可以关闭这些工件的部署:

        <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>

只是一起发布