如何在maven中设置级联版本?

时间:2014-04-23 13:44:39

标签: java maven cascade

我有多模块maven项目,并希望自动化部分发布准备。在发布之前我增加了更改模块A的版本,因为我有模块B依赖于A,我还需要增加B的版本。我知道有"版本"和"发布" maven插件,但他们并没有级联版本的更新。是否有可能自动更新B版本?

一些补充说明: 我们不使用父模块的版本,因此我不需要更新它。

版本颠簸之前:

parent module (1.0)
|  
|-- A module (0.01.00)
|-- B module (0.02.00)

版本颠簸之后:

parent module (1.0)
|  
|-- A module (0.01.01)
|-- B module (0.02.01)

1 个答案:

答案 0 :(得分:4)

release插件具有update-versions目标和autoVersionSubmodules选项,可将子模块版本设置为父项目版本。

用法示例here

现在,如果您的子模块之间存在依赖关系(Module B取决于Module A),则它们不会被release插件更新。

要解决此问题,您可以在${project.version} Module A Module B中定义与pom.xml的依赖关系时使用Module B

例如(在pom.xml&#39; s <dependency> <groupId>test</groupId> <artifactId>module-a</artifactId> <version>${project.version}</version> </dependency> 中):

Module A

(这样可行,因为Module B和{{1}}版本相同,并从父项目版本派生而来)