私はGradleの依存関係の管理を使用してのIntelliJ IDEA 2016年に編集された二つのプロジェクトがあります。Gradleの依存性管理 - 推移依存関係のバージョンが正しくない
:プロジェクトAとプロジェクトB.プロジェクトAのようにelasticsearchのコンパイルスコープの依存関係を定義します
compile 'org.elasticsearch:elasticsearch:2.3.1'
プロジェクトBがように、プロジェクトAのコンパイルスコープの依存関係を宣言します。
compile 'com.mycompany:elasticsearch-common:2.3.1'
私はインテリでGradleのツールウィンドウでは、期待されますプロジェクトBのためのJ IDEA 2016は、確認してください:
...
com.mycompany:elasticsearch-common:2.3.1 (Compile)
org.elasticsearch:elasticsearch:2.3.1 (Compile)
...
は、代わりに私が見る:それは別の依存関係の宣言によって上書きされていないので、
...
com.mycompany:elasticsearch-common:2.3.1 (Compile)
org.elasticsearch:elasticsearch:1.5.2 (Compile)
...
プロジェクトBには他の依存性は、elasticsearchに依存します。
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.1</version>
<scope>compile</scope>
</dependency>
なぜIntelliJのは1.5.2であるとしてelasticsearchのための推移バージョンを報告している:
は確かに、プロジェクトAのための私達のネクサス上のpom.xmlはこれを持っていますか?私が試した何
:
- が
- はGradleのキャッシュを削除し、プロジェクトBのディレクトリ内.ideaと.gradleを削除
- 飲む多くを誓う
- キャッシュを無効化し、IntelliJの
- に再起動しますお茶の
- 友人や同僚に質問
- (5関連)トイレに行くと、私は戻って
を得るとき、それは魔法のように自分自身を修正することを望ん
プロジェクトBで具体的にelasticsearch:2.3.1
の依存関係を指定していますが、推移的な依存関係の理由のすべてを否定するものではありません。
何か助けていただければ幸いです。
コメントでLanceJavaによって示唆されるようにアップデート1
は、私が起こっていたか見てgradle dependencies
を走りました。
これは、具体的にそれをダウングレードだということを示しています。
:dependencyInsight
com.mycompany:elasticsearch-common:2.3.1 (selected by rule)
\--- compile
org.elasticsearch:elasticsearch:1.5.2 (selected by rule)
org.elasticsearch:elasticsearch:2.3.1 -> 1.5.2
\--- com.mycompany:elasticsearch-common:2.3.1
\--- compile
誰もがなぜこれが起こっている任意のアイデアを持っている:私はそれが思いついたその依存関係上のGradle dependencyInsightを走った
org.elasticsearch:elasticsearch:2.3.1 -> 1.5.2
?
アップデート2
これが答えを持っているようだ:https://discuss.gradle.org/t/excluded-dependence-comes-back-when-spring-boot-plugin-is-applied/17945/2
Gradleの春ブートプラグインがビットを引き継ぐと、それは私はありませんにもかかわらず、自身の依存関係のバージョン(だ強制するのが好きと思われますspring-dataを使用しているspring-boot-startterを使用して)。
は、私が追加することによって、これを固定:私のbuild.gradleファイルへext[elasticsearch.version] = '2.3.1'
。
'gradle dependencies' fomコマンドラインを試してみてください。何が起こっているのかを教えてください。おそらくカスタム(ResolutionStrategy)があります(https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html) –
@ LanceJavaありがとう!私はこれを具体的にダウングレードしているようです: org.elasticsearch:elasticsearch:2.3.1 - > 1.5.2 私がdependencyInsightを実行したとき、それは次のようになりました: org.elasticsearch:elasticsearch:1.5.2ルールによって) org.elasticsearch:elasticsearch:2.3.1 - > 1.5.2 \ --- com.mycompany:elasticsearch-common:2.3.1 \ --- runtime – ndtreviv
@LanceJava更新を参照してください。 – ndtreviv