2017-12-08 13 views
0

を尊重しない:のGradleの推移依存性は、私はGradleの3.5プロジェクトを持っている、そしてそのプロジェクトで、私はアーティファクトに依存バージョン

compile "a.b.c:depProject:1.1.0" 

は「depProject」は、そのプロジェクトのPOMファイルで、Mavenプロジェクトであり、それは他のアーティファクトに依存します。

<dependency> 
     <groupId>org.apache.solr</groupId> 
     <artifactId>solr-solrj</artifactId> 
     <version>4.4.0</version> 
    </dependency> 

を今、私は私のプロジェクトの「Gradleの依存関係」を実行すると、それは正しく、私は推移的依存関係の解決を経由してsolrj依存性を取得する必要があることを示しているが、それは4.4を尊重していません。 0バージョンの宣言ではなく、私のプロジェクトはバージョン5.5.4に依存します。

+--- a.b.c:depProject:1.1.0 
| \--- org.apache.solr:solr-solrj:4.4.0 -> 5.5.4 

これらの行は、依存関係レポートに複数回表示されますが、常に同じです。

なぜGradleは自分の依存関係を自動的に「アップグレードする」のですか?私が望むバージョンを指定して、推移的な依存性に直接依存する以外に、これを止める方法はありますか?私は経由で私のプロジェクトでsolrj依存性を除外した場合

注:

compile ("a.b.c:depProject:1.1.0") { 
    exclude group:"org.apache.solr" module:"solr-solrj" 
} 

次いで、得られた「Gradleの依存関係」の呼び出し中のNO solrj依存性はありませんので、依存しているsolrjは他の場所ではありませんその高いバージョンで。

私は、全体のbuild.gradleを投稿することはできませんが、私はプラグインが適用されているかを示すことができます:2つの推移依存関係の間に矛盾がある場合

apply plugin:"idea" 
apply plugin:"org.grails.grails-web" 
apply plugin:"com.moowork.node" 
apply plugin:"org.grails.plugins.views-json" 
apply plugin: "org.grails.grails-gsp" 
apply plugin: "maven" 
apply plugin: "codenarc" 
apply plugin: "jacoco" 
apply plugin: "org.sonarqube" 
apply plugin: "asset-pipeline" 
+0

バージョンをバンプするためにプラグインを使用しましたが、それでも '5.5.4'でも最新ではないことは変です。完全な 'build.gradle'を貼り付けるのが良いでしょう。 – chenrui

+0

@chenrui build.gradleに適用されたプラグインを追加しました。 – billjamesdev

+0

'buildSrc'パーツも貼り付けることができれば、私がデバッグするのは素晴らしいことです。 – chenrui

答えて

0

のGradleは、依存関係の新しいバージョンを選びます。だから、のGradleのバグ、またはプロジェクト内の他の何かが

org.apache.solr:solr-solrj:5.5.4 

に依存したどちらかだけ

gradle dependencies | grep -B5 solrj:5 

を実行し、実際にそのバージョンへの依存がないかどうかを確認します。

また、特定の解像度を強制することもできます。gradle force versionを検索すると、すぐに回答が得られますが、これによってsolrjがダウングレードされるため、まず何が間違っているのかを判断する必要があります。

関連する問題