我正在尝试解决此处描述的问题: http://www.jayway.com/2013/04/12/solving-asm-conflicts-after-upgrading-to-groovy-2-1/
我有一个使用ASM 3.2的依赖项(Swagger-> Jersey)和一个需要ASM 4.0的Groovy的RestAssured。
我的想法是将对groovy的依赖替换为依赖groovy-all,它不依赖于ASM 4.0(这里的类包似乎已经使用jarjar重命名)。
是否有可能告诉maven,在父pom的依赖管理中,每当孩子依赖RestAssured时,它会传递加载groovy-all依赖而不是正常的groovy依赖?
由于
目标是所有孩子只需要:
<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>
答案 0 :(得分:1)
不,这是不可能的。但是,您可以使用依赖项<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>