gpt4 book ai didi

java - Maven3 : replace transitive dependency of a direct dependency in dependency management

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:23 27 4
gpt4 key购买 nike

我正在尝试解决此处描述的问题: http://www.jayway.com/2013/04/12/solving-asm-conflicts-after-upgrading-to-groovy-2-1/

我有一个使用 ASM 3.2 的依赖项 (Swagger->Jersey) 和一个需要 Groovy 的 RestAssured,而 Groovy 需要 ASM 4.0。

这个想法是将 groovy 的依赖替换为不依赖于 ASM 4.0 的依赖 groovy-all (类包似乎在这里,但已使用 jarjar 重命名)。

是否可以告诉maven,在父pom的依赖管理中,每当子进程依赖RestAssured时,它就会间接加载groovy-all依赖项,而不是正常的groovy依赖项?

谢谢

<小时/>

目标是所有 child 只需要:

<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
</dependency>

它检索 groovy-all 而不是 groovy

不是

<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</dependency>

最佳答案

不,这是不可能的。但是,您可以使用依赖项 <exclusions/> 。此外,作为顶级依赖项,您可以定义 groovy-all .

您链接到的文章说明了以下解决方案:

<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
<version>1.8.0</version>
<exclusions>
<!-- Exclude Groovy because of classpath issue -->
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<!-- Needs to be the same version that
REST Assured depends on -->
<version>2.1.2</version>
<scope>test</scope>
</dependency>

关于java - Maven3 : replace transitive dependency of a direct dependency in dependency management,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816126/

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