1

ここで説明されている問題を修正しようとしています: http://www.jayway.com/2013/04/12/solving-asm-conflicts-after-upgrading-to-groovy-2-1/

ASM 3.2 を使用する 1 つの依存関係 (Swagger->Jersey) と、ASM 4.0 を必要とする Groovy を必要とする 1 つの RestAssured があります。

アイデアは、groovy への依存関係を、ASM 4.0 に依存しない依存関係 groovy-all に置き換えることです (クラス パッケージはここにあるように見えますが、jarjar を使用して名前が変更されています)。

親pomの依存関係管理で、子がRestAssuredに依存するときはいつでも、通常のgroovy依存関係の代わりにgroovy-all依存関係を推移的にロードすることをmavenに伝えることは可能ですか?

ありがとう


目的は、すべての子が必要とするのは次のものだけです。

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

groovy の代わりに groovy-all を取得するもの

そしてそうではない

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

1 に答える 1

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>
于 2013-05-29T15:27:22.913 に答える