使用flatten-maven-plugin插件管理版本号¶
1 发现问题¶
当项目分为多个子包时,通常都会引用同一个父包( Parent
)进行依赖版本的统一管理。但是,对于每个子包的版本管理,还是独立的。举个栗子:
-
子包
-
父包
可以看到,在子包中要写死父包的版本号,这样一来,每次进行版本号更迭时,都要对每个子包进行一次修改。
2 解决问题¶
首先,父包的作用就是统一管理版本,那么理想中的状态就是,当我们修改了父包的版本后,所有子包都会生效,即放弃使用子包中写死的这种写法。在 Maven 3.5.0-beta-1
开始,可以使用 {revision}
作为版本的占位符,从而达到统一从父包修改的效果。举个栗子:
-
父包
-
子包
到这一步,已经基本实现了父包的统一管理,但是在 install
、 deploy
的时候会出现问题,在打包后的 pom
文件中 revision
依旧是个变量。举个栗子:
为了解决这个问题,可以在父包中引入 flatten-maven-plugin
插件,其作用就是将 revision
变量替换为实际的值。
XML | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
在 install
后,会发现项目目录中多了 .flattened-pom.xml
,其原理是将 .flattened-pom.xml(已替换变量的pom)
替换到 jar
包中。
至此,通过使用 flatten-maven-plugin
插件实现了在父包中进行统一的版本管理。