问题
I have declared a dependency for org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4
, but in runtime scope it is overridden to 1.0-groovy-2.4
. Is there a way to figure out which dependency is overriding it?
1.0-groovy-2.4
is not present in any gradle file locally, and it is not visible when I run gradle dependencies
in the shared-config
project.
Here's gradle dependencies
from the main-web
project:
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
gives some insight:
$ 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
But the same command in the shared-config
project doesn't yield any results:
No dependencies matching given input were found in configuration ':shared-config:runtime'
I have tried overriding the version without success:
configurations.all {
resolutionStrategy {
force "org.spockframework:spock-spring:1.1.d91bf785-groovy-2.4"
}
}
回答1:
Seems like you are using spring boot as a parent or spring boot dependencies as a bom (dependency manager)
by default in latest spring boot versions 1.5 + spock.version
is set to 1.0-groovy-2.4
that's why spock-core
still have old version.
In order to fix this in gradle you need to override property spock.version
in your gradle app. By adding spock.version = 1.1-groovy-2.4
to gradle.properties
file.
Visit Spring doc for overriding dep properties to find more.
来源:https://stackoverflow.com/questions/46931113/determine-source-of-dependency-version-override-in-gradle