gpt4 book ai didi

maven - 具有 “outgoing”依赖关系的Maven中央jar

转载 作者:行者123 更新时间:2023-12-03 05:14:19 25 4
gpt4 key购买 nike

我们使用的dumbster:dumbster:1.6(来自Maven Central)声明了对javax.mail:mail:1.3.2的依赖。不幸的是,Maven Central仅从版本1.4开始包含javax.mail:mail的jar。如果我对dumbster:dumbster:1.6和javax.mail:mail:1.4.1都添加了依赖项,那么一切都会正常进行。

但是,我想避免告诉所有开发人员,dumbster不能暂时运行,而需要一个额外的mail.jar。有什么办法可以避免这种情况?

我觉得这个问题更普遍:来自Maven Central的Jars指向Maven Central之外的地方可能会引起问题。

最佳答案

首先,这个笨拙的部门有些旧,是的,您是对的..这是一个问题,或者更好的是一个问题。很久以前,中环的规则已更改,因此您不能将pom( jar )放入不属于中环的引用jar / 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。如果他们忘记添加 javax.mail,则构建将失败。

<dependencies>
<dependency>
<groupId>dumbster</groupId>
<artifactId>dumbster</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</dependency>
</dependencies>

您还可以使用 maven-enforcer-plugin强制使用正确的版本。

关于maven - 具有 “outgoing”依赖关系的Maven中央jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35886332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com