我已经为org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4
声明了一个依赖项,但在运行时范围内它被重写为1.0-groovy-2.4
。有没有办法弄清楚哪个依赖关系覆盖它?
1.0-groovy-2.4
在本地的任何gradle文件中都不存在,当我在gradle dependencies
项目中运行shared-config
时,它不可见。
以下是gradle dependencies
项目中的main-web
:
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'
我尝试覆盖该版本但没有成功:
configurations.all {
resolutionStrategy {
force "org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4"
}
}
答案 0 :(得分:3)
好像你使用spring boot作为父级或spring引导依赖项作为bom(依赖管理器)
默认情况下,最新的春季启动版本1.5 + spock.version
设置为1.0-groovy-2.4
,这就是spock-core
仍有旧版本的原因。
要在gradle中修复此问题,您需要覆盖Gradle应用中的属性spock.version
。将spock.version = 1.1-groovy-2.4
添加到gradle.properties
文件。