使用范围导入和版本范围

max*_*mil 7 java dependency-management maven

我们正在尝试集中我们在代码库中使用的所有工件的版本,以消除重复并简化碰撞版本的任务.

我们使用所有工件和第三方工件的版本创建了BOM pom,并将其导入(范围导入)在每个工件的poms的dependencyManagement部分中.

为避免每次更新bom版本时都必须更新每个工件,我们在导入bom时尝试使用版本范围.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.acme</groupId>
      <artifactId>bom</artifactId>
      <version>[1.0,)</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

但是,maven似乎没有识别pom的dependencyManagement部分中的版本范围.

我知道如果我们的工件之间的关系是分层的,我们可以使用模块并从父POM中释放.然而不幸的是,事实并非如此.

这必须是maven的常见用例.我们做错了什么或存在其他解决方案?

Dmi*_*kiy 2

考虑到 Maven 问题跟踪器中相关问题的数量,看起来这是 Maven 中的一个长期存在的问题。

根据最新的相关票证,这个问题将在下一个主要 Maven 版本 (4.0.0) 中得到解决。