从运行的项目中配置allprojects Gradle任务的最佳方法是什么?

时间:2016-01-06 14:48:58

标签: c++ gradle gradle-2

在root build.gradle中,我们在所有项目下创建一个任务,该任务应该在构建运行任务的项目之前运行。

// root build
apply plugin: 'cpp'
all projects {
  task.whenTaskAdded {theTask ->
    if (theTask.name == "build") {
      if (theTask.project.<runPreBuildTask?> == true) {
        tasks.create(name: 'preBuildTask' + theTask.name) {
          // do some stuff
        }
        theTask.dependsOn preBuildTask 
      }
    }
  }
  // other stuff model, toolchains, repositories
}

// some sub project build
// :subProject:subSubProject
// no luck using ext properties
ext.set('subSubProjectDoPreBuild', 'true')
model{
  components {
    ...
  }
 }

对于一些参考,我们有近800个子项目,他们的build.gradle由一个转换现有make文件的脚本自动生成。我意识到我们将不得不手动编辑其中许多但是为了完成这项任务,我们希望将根构建将任务注入到所有子项目中,但前提是它们只是标记或设置了一些东西。这将使我们能够灵活地在将来更改任务,而无需编辑100个子构建。如果我以错误的方式处理这项任务,请告诉我。

0 个答案:

没有答案