Maven 多模块项目的版本管理

原创
2017/03/21 20:56
阅读数 6.4K

在 Maven 多模块项目中,常会使用项目继承的方式管理项目。

<parent>
    <artifactId>parent</artifactId>
    <groupId>com.example</groupId>
    <version>${project.version}</version>
    <relativePath>../parent</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>module</artifactId>
<packaging>jar</packaging>
<name>xxx-service</name>
<version>1.0</version>

上面是一段 pom.xml 片段,介绍了一个 Maven 项目如何继承另一个项目。通过项目继承,可以起到简化和统一项目配置的目的。但是上述配置存在着一定的问题,即 parent 节点的 version 不能是变量,只能是常量。这是 Maven 的一个限制,虽然目前并不会导致编译错误,但是会有警告产生。同时,同一些插件也有兼容性问题。所以,建议大家按照 Maven 的建议,不在 parent.version 中使用变量。

但是,当将 parent.version 中的值替换为常量之后,产生一个新问题。这个新问题就是当模块比较多的时候,如何控制版本,因为每个模块的 pom.xml 中都有一个重复的常量值。

得益于 Maven 丰富的插件,我们很容易解决这个问题。能解决这个问题的插件有两个。一个是 release 插件,这个插件用法比较复杂,这里就不具体介绍了。还有另一个插件也能解决这个问题 —— versions 插件。使用这个插件可以很方便地修改整个项目的版本号。即便使用方法是在项目根目录下执行 mvn versions:set 命令,然后根据提示就可以设置项目的新版本号。更多的使用方法请看这里

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部