1

以下は私のPOMの大まかなバージョンです。

<project>

    <dependencies>
        <dependency>one-java-artifact-version-X</dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <dependencies>
                    <dependency>one-java-artifact-version-Y</dependency>
                </dependencies> 
            </plugin>
        </plugins>
    </build>

</project>

私はプラグインを使用したいone-java-artifact-version-Yが、他のものを使用したいone-java-artifact-version-X. 異なるバージョンの Java アーティファクトを Maven と並べて使用することは可能ですか? 特に、上記の状況に対処する方法は?

@編集

私の場合、Maven 3.0.4one-java-artifact-version-Yは常に によってシャドウされているため、代わりone-java-artifact-version-Xに望ましくない依存関係があるため、プラグインは実行に失敗しますone-java-artifact-version-Xone-java-artifact-version-Yただし、以下のグローバルな依存関係に昇格した後、他のものが混乱している間、プラグインは機能します。

<project>

    <dependencies>

        <dependency>one-java-artifact-version-Y</dependency>

        <dependency>one-java-artifact-version-X</dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
            </plugin>
        </plugins>
    </build>

</project>
4

1 に答える 1

1

この場合(つまり、プラグインのバージョンと競合している場合)可能かどうかはわかりませんが、通常の依存関係の管理(つまり、2 つの異なるバージョンを使用する 2 つの依存関係の間)に関しては、Maven のドキュメントには次のように書かれています。

「最も近い定義」は、使用されるバージョンが依存関係のツリーでプロジェクトに最も近いものになることを意味します。A、B、および C の依存関係が A -> B -> C -> D 2.0 および A -> E -> D 1.0 として定義されている場合、A を構築するときに D 1.0 が使用されます。 Eは短いです。A で D 2.0 への依存関係を明示的に追加して、D 2.0 の使用を強制することができます。

于 2012-12-05T11:11:54.497 に答える