0

2つのプロジェクトがあります:
A----にはlibcommonsバージョンがあります。1.3.7 ---(Bに依存)
B----ライブラリコモンズバージョンがあります。1.2.5

したがって、プロジェクトB、libcommonsversを構築しています。1.2.5が含まれ、ローカルリポジトリにインストールされます。その後、Aのビルド(Bに依存)を実行すると、Mavenはlibcommonsversを決定します。libはツリーのルートから最小距離にあるため、1.3.7を含める必要があります...アーティファクトのバージョンを次のように設定すると、1.2.5-推奨バージョンになります。しかし、それを[]に入れると、それは難しい要件であり、Mavenはバージョンの競合を解決するために別の戦略を適用して、そのアーティファクトの推奨バージョンを含める必要があります。しかし、私がそれをやろうとすると、それはうまくいきません。なぜなら、Mavenはライブラリコモンズの参照を含むlocリポジトリからアーティファクトを取得するからです。マニフェストファイルには1.2.5が含まれていますが、含まれているlib-commonsvers。1.3.7。この問題をどのように解決できるか教えていただけますか、

4

2 に答える 2

1

依存関係の除外を使用する必要があります。そのようなもの(それは単なるサンプルです):

<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-amqp</artifactId>
<version>2.1.0.RELEASE</version>
<exclusions>
    <exclusion>
        <artifactId>spring-beans</artifactId>
        <groupId>org.springframework</groupId>
    </exclusion>
</exclusions>
</dependency>

Eclipseを使用していて、手動で実行したくない場合は、pomファイルを開き、すべての依存関係階層を表示できる[依存関係階層]タブを選択することで実行できます。次に、除外する依存関係を右クリックして、[Mavenアーティファクトを除外]をクリックします。

于 2012-12-06T17:51:48.197 に答える
0

実行する必要がありますmvn dependency:tree

于 2012-12-06T17:50:23.473 に答える