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

mul*_*lya 7 java cascade maven

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

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

版本之前:

parent module (1.0)
|  
|-- A module (0.01.00)
|-- B module (0.02.00)
Run Code Online (Sandbox Code Playgroud)

版本颠簸之后:

parent module (1.0)
|  
|-- A module (0.01.01)
|-- B module (0.02.01)
Run Code Online (Sandbox Code Playgroud)

Eug*_*Loy 4

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

使用示例在这里

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

要解决这个问题,您可以在定义对in 的依赖${project.version}时使用。Module AModule Bpom.xml

例如(在Module B's中pom.xml):

    <dependency>
        <groupId>test</groupId>
        <artifactId>module-a</artifactId>
        <version>${project.version}</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

(这将起作用,因为Module AModule B版本相同并且源自父项目版本)