Maven 根据多模块项目锁定快照版本

Maven 根据多模块项目锁定快照版本,maven,Maven,我有一个多模块项目(B),它依赖于另一个多模块项目(a)的各个模块。(B)的每个模块可能依赖于(A)的不同部分,但它们都应该使用(A)的相同版本。当前版本在(B)的父pom中指定为属性 我希望能够通过单个命令锁定用于特定构建(x.y.z-ts-buildnum)的版本,同时只列出一次(B)的版本 在父项中: <dep.version>4.1.0-SNAPSHOT</dep.version> 4.1.0-SNAPSHOT 在模块中: <dependency

我有一个多模块项目(B),它依赖于另一个多模块项目(a)的各个模块。(B)的每个模块可能依赖于(A)的不同部分,但它们都应该使用(A)的相同版本。当前版本在(B)的父pom中指定为属性

我希望能够通过单个命令锁定用于特定构建(x.y.z-ts-buildnum)的版本,同时只列出一次(B)的版本

在父项中:

    <dep.version>4.1.0-SNAPSHOT</dep.version>
4.1.0-SNAPSHOT
在模块中:

<dependency>
  <groupId>com.example</groupId>
  <artifactId>B-foo</artifactId>
  <version>${dep.version}</version>
</dependency>

com.example
但这似乎并没有锁定由属性设置的版本
  • 用于更新属性版本,但不锁定快照
  • 围绕从本地存储库解析a的pom的最新快照编写脚本,但这不起作用,因为。我可以编写一个脚本来查看每个模块,但这已经接近maven插件所能完成的工作量了

  • 我建议在模块b的父模块中定义模块A的依赖项,如下所示:

    
    6.5.0-12-快照
    com.example
    阿福
    ${module-a.version}
    com.example
    A-bar
    ${module-a.version}
    ...
    
    在模块中,您现在只需编写:

    
    com.example
    A-bar
    

    这将使您有可能只在一个地方更改所有模块的版本。在module-A.version的根目录下。

    这是否仍然将
    module-A.version
    保留为maven版本插件无法自动锁定的属性?