[英]Maven3: replace transitive dependency of a direct dependency in dependency management
我正在嘗試解決此處描述的問題: http : //www.jayway.com/2013/04/12/solving-asm-conflicts-after-upgrading-to-groovy-2-1/
我有一個使用ASM 3.2的依賴項(Swagger-> Jersey)和一個需要Groovy且需要ASM 4.0的RestAssured。
想法是將對groovy的依賴替換為不依賴於ASM 4.0的依賴groovy-all(類包在這里似乎已經使用jarjar重命名了)。
是否有可能告訴maven,在父pom的依賴管理中,每當一個孩子依賴RestAssured時,它將通過傳遞方式加載所有groovy依賴而不是正常的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>
不,不可能。 但是,您可以使用依賴項<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.