通过jenkins更新maven多模块的版本

时间:2017-05-29 17:31:09

标签: git maven svn jenkins

我有一个包含1个父项及其多模块的项目

父        - 模块1        - 模块2        - 模块3

我正在使用jenkins来构建项目。每个父项及其模块应保持独立的版本。

要求是,当我由jenkins发布DEV时,如果我的构建成功,如果SVN / GIT有任何变化,我想增加模块版本。

例如:

父母 - 1.2

 - module1 - 1.3
 - module2 - 1.2
 - module3 - 1.4

如果在模块3中进行了一些更改,则会触发jenkins构建。如果我的jenkins构建成功,只有module3构建版本应该增加到1.5并且应该更新pom.xml。

父母 - 1.2       - module1 - 1.3       - module2 - 1.2       - module3 - 1.5

1 个答案:

答案 0 :(得分:0)

我们使用 versions-maven-plugin 来管理Jenkins管道中的多模块maven pom.xml版本。该插件提供了许多选项,但您必须研究适合您需求的特定选项。

文档:http://www.mojohaus.org/versions-maven-plugin/

新版本号可以由插件本身或外部windows / unix脚本计算,该脚本可以计算并将值存储在插件可访问的环境变量中。

我查看了您最近的评论,并认为更清晰的解决方案是不共享用于管理外部公共依赖项的相同父项目。相反,我建议使用BOM来管理依赖项。

在单个pom.xml文件中声明所有常见的依赖版本等。然后在您的子模块中,使用:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>your.group.id</groupId>
            <artifactId>your.artifact.id</artifactId>
            <version>your.bom.version.number</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>