我有一个多模块gradle项目,我在两个子项目之间存在依赖版本冲突。默认情况下,子项目解析为最高依赖项版本,并由于API不兼容而导致编译错误。
我在子项目中添加了此配置:
configurations.avroCodeGen { // avroCodeGen is part of a custom plugin
resolutionStrategy {
eachDependency {DependencyResolveDetails details ->
//force override avro to version 1.4.0
if (details.requested.name == 'avro') {
details.useVersion '1.4.0'
}
}
}
}
如果我构建这个特定的模块,这编译很好但是当我从顶级根项目构建时,我得到编译错误。我在我的根项目build.gradle中添加了这个,但它似乎没有帮助。
project(':subproject-name') {
plugins.withType(CustomPlugin) {
configurations.avroCodeGen {
resolutionStrategy {
eachDependency {DependencyResolveDetails details ->
//force override avro to version 1.4.0
if (details.requested.name == 'avro') {
details.useVersion '1.4.0'
}
}
}
}
}
}
这抱怨说它在子项目中找不到属性CustomPlugin。我错过了什么?