簡體   English   中英

Maven3:在依賴管理中替換直接依賴的傳遞依賴

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM