Gradle覆盖多项目

时间:2015-08-06 22:18:48

标签: java gradle dependency-management

我有一个多模块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。我错过了什么?

0 个答案:

没有答案