动态地将dependsOn添加到gradle任务

时间:2017-02-16 19:25:09

标签: android gradle

我有一个包含许多模块(10+)的项目。在每个build.gradle文件中都有一个任务:

task findbugs(type: FindBugs, dependsOn: ':MODULENAME:compileReleaseSources') {
    ignoreFailures = true
    classes = fileTree('build/intermediates/classes/release/')
    source = fileTree('src/main/java/')
    classpath = files()
    ... and so on
} 

所以我想提取此任务并使用此任务创建自定义script.gradle文件,并使用build.gradle将其包含到每个apply from: script.gradle

问题就在这里,为了实现这一点,我需要将 MODULENAME 包含在dependsOn中。当我在每个build.gradle内部执行任务时根本没有问题,因为我刚刚硬编码了相应的模块名称(:app:compileReleaseSources, :firebase:compileReleaseSources等)。

有什么方法可以动态添加 MODULENAME

1 个答案:

答案 0 :(得分:0)

我提出了最简单,最可靠的解决方案......

   def getModuleName() {
        return displayName.substring(displayName.indexOf(":"), displayName.length() - 1)
    }