Netflix Feign と Glassfish Jersey の実装に依存するプロジェクトがあります。
Feign は JAX-RS (JSR 311) の 1.1 仕様を使用し、glassfish jersey 実装は 2.0 仕様を使用します。2.0 は下位互換性がありますが、Gradle の依存関係の名前が変更されています。
したがって、私のプロジェクトには 2 つの依存関係があります。
- javax.ws.rs:jsr311-api:1.1.1
- javax.ws.rs:javax-ws-rs-api:2.0.1
どちらも同じパッケージに同じクラスを実装していますが、1.x に従っているものと 2.x に従っているものがあります。
私の Java コードでは、クラス名とパッケージしか指摘できません。
名前は異なりますが、これは実際には同じパッケージであり、そのようにしてクラスパスで実装クラスのセットを1つだけ取得することをGradleに伝えることはできますか?
現在、JVM とコンパイラが選択するクラスのバージョンはランダムです。コンパイルされない場合もあれば、コンパイルされても実行されない場合もあります (MethodNotFoundException)。