Determine source of dependency version override in Gradle

房东的猫 提交于 2019-12-13 15:50:36

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!