【发布时间】:2013-01-08 06:04:01
【问题描述】:
在一个 Maven 项目中,我们使用了第三方工件(特别是 spring-data-jpa 1.1.0.RELEASE),它依赖于另一个工件(spring-core),允许范围内的任何版本(准确地说:[ 3.0.7.RELEASE、4.0.0.RELEASE),见its pom-file)。我们没有直接依赖 spring-core。
所以有一天我们的构建选择了 3.1.2.RELEASE,但是当 3.2.0.RC1 发布时,我们的构建突然选择了那个版本。
但是,我们希望有可重复的构建:当我们在一年的时间内交付补丁时,我们不想引入更新版本的 spring-core 或任何其他间接依赖,至少不知道。
(我知道我们可以指导Maven为spring-core选择一个特定的版本,例如使用<dependencyManagement>,但我这里的意思是间接依赖中可能隐藏着任意选择,我喜欢Maven告诉我们这些,而无需定期手动检查。)
问题:如果 Maven 为任何间接依赖项做出任意版本选择,我们如何让 Maven 警告我们?
【问题讨论】:
-
其实不是重复的。我很抱歉。它只是相关的。
-
这将为强制插件制定一个很好的规则。
-
@StephenConnolly:感谢您提供指向此插件的指针,很快就会试用。
<DependencyConvergence/>不正是我想要的吗,或者这会是一个新规则吗? -
@MarnixKlooster 我认为这将是一个新规则。依赖收敛规则只是确保两个依赖不会传递引用同一工件的不同版本。
标签: maven dependency-management