将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)中解决。
相关文章