首先,这个愚蠢的部门有点老了,是的,你是对的..这是一个问题,或者更好的是一个问题。很久以前,中央的规则已经改变,因此您不能将 pom(罐子)放入中央,其中引用不在中央的罐子/deps。
通常的解决方案是在公司 pom 文件中定义这样的依赖项,该文件在 dependencyManagement 中声明它并排除传递依赖项并添加更新的版本。
<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
通过添加以下内容来定义 smiply。如果他们忘记添加javax.mail
那里,构建将失败。
<dependencies>
<dependency>
<groupId>dumbster</groupId>
<artifactId>dumbster</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</dependency>
</dependencies>
您还可以使用maven-enforcer-plugin强制使用正确的版本。