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