2017-10-25 9 views
1

org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4の依存関係を宣言しましたが、ランタイムスコープでは1.0-groovy-2.4に上書きされます。どの依存関係がそれを上書きしているのか把握する方法はありますか?Gradleでの依存関係のオーバーライド元の決定

1.0-groovy-2.4は、ローカルではどのグラデルファイルにも存在しません。また、shared-configプロジェクトでgradle dependenciesを実行すると表示されません。

ここmain-webプロジェクトからgradle dependenciesです:

testCompile 
[...] 
+--- project :shared-config 
| [...] 
| +--- org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4 
[...] 
runtime 
[...] 
+--- project :shared-config 
| [...] 
| +--- org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4 -> 1.0-groovy-2.4 
| | +--- org.spockframework:spock-core:1.0-groovy-2.4 -> 1.1.d91bf785-groovy-2.4 
| | \--- org.codehaus.groovy:groovy-all:2.4.1 -> 2.4.12 

dependencyInsightは、いくつかの洞察力を与える:

$ gradle dependencyInsight --dependency org.spockframework:spock-spring:1.0-groovy-2.4 --configuration runtime  
> Task :main-web:dependencyInsight 
org.spockframework:spock-spring:1.0-groovy-2.4 (selected by rule) 

org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4 -> 1.0-groovy-2.4 
\--- project :shared-config 
    \--- runtime 

しかしshared-configプロジェクト内の同じコマンドは、すべての結果が得られていません:

No dependencies matching given input were found in configuration ':shared-config:runtime' 

私は試しました1.5 + spock.versionが設定されている最新の春のブートバージョンではデフォルトで

configurations.all { 
    resolutionStrategy { 
     force "org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4" 
    } 
} 

答えて

2

あなたはBOMとして、親や春ブーツ依存関係として春のブートを使用しているように思える(依存関係管理)

:成功のないバージョンを上書きにはまだ古いバージョンがあるのは、1.0-groovy-2.4です。

これをgradleで修正するには、gradleアプリでプロパティspock.versionを上書きする必要があります。 spock.version = 1.1-groovy-2.4gradle.propertiesファイルに追加することによって。

Spring doc for overriding dep propertiesを参照してください。

+0

ありがとうございます!私もこれを理解しましたが、私の答えを更新するのを忘れました。私は 'ext [" spock.version "] = ...'を自分で使います。他のバージョン識別子は、https://github.com/spring-projects/spring-boot/blob/1.5.x/spring-boot-dependencies/pom.xml#L47にあります。 – neu242

関連する問題