9

Pom には、A と B という 2 つの依存関係があります。A と B の両方が、アーティファクト C (cassandra-all) に推移的な依存関係を持っています。A と B は C の異なるバージョンを使用します。依存関係 A はアーティファクトastyanaxです。 B に付属している Cのバージョン

を維持したいのですが、A (Astyanax) に C の除外を追加することで実現しました。

残念ながら、B のスコープを「テスト」にしたいと考えています。これは、A を除外すると、C がテスト範囲外に含まれないことを意味します。

どうすればこれを解決できますか? 特定のスコープのみを除外できますか? または、推移的な依存関係に使用するバージョンを指定できますか?


例:
これが私の pom の外観です。

アーティファクト C (cassandra-all と呼ばれる) への依存を除外したアーティファクト A (astyanax)

    <dependency>
        <groupId>com.netflix.astyanax</groupId>
        <artifactId>astyanax</artifactId>
        <version>1.0.4</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.cassandra</groupId>
                <artifactId>cassandra-all</artifactId>
            </exclusion>
        </exclusions>  
    </dependency>
    <dependency>
        <groupId>org.cassandraunit</groupId>
        <artifactId>cassandra-unit</artifactId>
        <version>1.1.1.1</version>
        <scope>test</scope>
    </dependency>

具体的には、テスト スコープ外でコードを実行し、cassandraunit テストのみのスコープを維持する場合、どうすれば cassandra-all を含めることができますか?

4

3 に答える 3

1

すべてを理解できたかどうかはわかりませんが、いずれにせよ、プロファイルを使用してこれを達成できるはずです。

pom で、B を除外して依存関係 A を追加するプロファイル A と、A を除外して依存関係を持つプロファイル B を作成します。

実行時に、選択したプロファイルに応じて、いずれかを含めます。

ハイ

于 2012-11-27T09:29:48.227 に答える