dumbster:dumbster:我们使用的1.6(来自Maven Central)声明了对javax.mail的依赖:mail:1.3.2。不幸的是,Maven Central包含javax.mail的jars:仅从1.4版开始的邮件。如果我为dumbster:dumbster:1.6和javax.mail:mail:1.4.1添加依赖项,一切正常。
但我想避免告诉所有开发人员dumbster不能传递,但需要额外的mail.jar。有什么方法可以避免这种情况吗?
我的印象是这个问题比较普遍:来自Maven Central的Jars可能会引起问题。
答案 0 :(得分:1)
首先,这个dumbster dep有点老了,是的,你是对的..这是一个问题或更好是一个问题。很久以前,中心的规则已经改变,所以你不能把pom(jar)作为参考不在中环的罐子/ deps的中心。
通常的解决方案是在公司pom文件中定义这样的依赖关系,该文件在dependencyManagement中声明它并排除传递依赖关系并添加更新的版本。
title
通过使用上述内容,您的开发人员将被迫通过添加以下内容来定义<dependencyManagement>
<dependencies>
<dependency>
<groupId>dumbster</groupId>
<artifactId>dumbster</artifactId>
<version>1.6</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
</dependencies>
</dependencyManagement>
。如果他们忘记添加javax.mail
,那么构建将失败。
javax.mail
您还可以使用maven-enforcer-plugin强制使用正确的版本。