私は依存関係に問題があります。2つの異なる依存関係の問題の同じインタフェース
は私のプロジェクトでは、このように二つの依存関係しています
dependencies {
provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
compile files('path/to/ABC.jar')
}
ABC.jar
はに、独自の依存関係を持っています。ここ
dependencies {
provided group: 'javax.servlet', name: 'servlet-api', version: '2.5'
}
は、私が取り扱っております問題です。私はServletContext
インタフェースを使用する必要があります。このインタフェースはservlet-apiライブラリで提供されており、コンパイラは間違ったものを使います。
Gradleは、hereのようにバージョンの競合を自動解決します。
しかし、私の場合は、依存関係に2つの異なるバージョンがある場合にのみ機能するため、私の場合は役に立ちません。この場合;それは新しいバージョンの問題ですが、名前はからjavax.servlet:javax.servlet-api
に変更されました。したがって、バージョンの問題ではないようだから、gradleはこの競合を自動解決しません。
hereと記載されているように、過渡的な依存性を除いて使用していたことがありました。
compile files('path/to/ABC.jar') {
exclude group: 'javax.servlet'
}
しかし、うまくいきませんでした。exclude
は、ローカルの 'jar'ファイルでは動作しません。
今、私は他に何をすべきか分かりません。
どのようにローカルファイルとして追加される依存関係の依存関係を除外できますか?
(最初の質問にまだ回答がない場合)正しいServletContext
インターフェイスを使用するには、どのようにコンパイラに伝えますか?