我有一个定义resolutionStrategy
的Gradle父项目。我想覆盖eachDependency
对某些依赖项的行为,但委托给其他依赖项。我怎样才能做到这一点?我怎样才能获得对父母的ResolutionStrategy的引用,以便我可以委派?
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
// how can I delegate to the parent here?
}
}
}
答案 0 :(得分:0)
看起来您可以执行多项eachDependency
操作,因此对于我的问题,父级eachDependency
已经运行,但我可以覆盖它在孩子身上所做的任何事情eachDependency
。
编辑:根据要求。在我的情况下,父母将杰克逊设置为不同的版本。这就是我强迫它进入孩子build.gradle
中的特定版本的方式:
def jacksonGroups = [
'com.fasterxml.jackson.core',
'com.fasterxml.jackson.dataformat',
'com.fasterxml.jackson.datatype',
'com.fasterxml.jackson.module'
] as Set
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (jacksonGroups.contains(details.requested.group)) {
details.useVersion '2.9.2'
}
}
}
}