将maven依赖项管理导入范围与版本范围一起使用

2022-06-19 00:00:00 dependency-management java maven

我们正在尝试集中代码库中使用的所有项目的版本,以消除重复并简化版本跳转的任务。

我们已经使用所有项目和第三方项目的版本创建了一个BOM POM,并将其导入(范围导入)到每个项目的POM的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>

但是,Maven似乎无法识别POM的DependencyManagement部分中的版本范围。

我知道,如果我们的构件之间的关系是分层的,我们可以使用模块并从父POM发布。然而,不幸的是,情况并非如此。

这一定是Maven的常见用例。我们做错了什么或存在其他解决方案?


解决方案

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

根据最新的相关ticket,此问题将在下一个主要Maven版本(4.0.0)中解决。

相关文章