gradle将参数传递给dependsOn任务

gradle将参数传递给dependsOn任务,gradle,Gradle,我有3个梯度任务:A、B、C。 B依赖于A。 C德彭森A 如果在A中有一个If检查,我希望在B运行时为true,在C运行时为false。 我该怎么做 为明确起见,真正的任务是: war { // task A webAppDirName = 'src/main/webapp' if (flag) { rootSpec.exclude("**/*.json") rootSpec.exclude("**/*.xml") } } ospack

我有3个梯度任务:A、B、C。 B依赖于A。 C德彭森A

如果在A中有一个If检查,我希望在B运行时为true,在C运行时为false。 我该怎么做

为明确起见,真正的任务是:

war { // task A
    webAppDirName = 'src/main/webapp'

    if (flag) {
        rootSpec.exclude("**/*.json")
        rootSpec.exclude("**/*.xml")
    }
}

ospackage { // task B
    buildRpm {
        dependsOn war
    }
}

task localTomcat { // task C
    dependsOn war
}

我试着在第一个动作中将war.flag、war.ext.flag设置在dependsOn之前,但什么都没有…

我找到了一个使用dependsOn链和mustRunAfter的解决方案

代码:

task war4pkg {
    doLast {
        war.rootSpec.exclude("**/*.json")
        war.rootSpec.exclude("**/*.xml")
    }
}

war {
    webAppDirName = 'src/main/webapp'
}

ospackage {
    buildRpm {
        dependsOn war4pkg, war      # order doesn't matter
        war.mustRunAfter war4pkg    # order set here
    }
}

task localTomcat {
    dependsOn war     # nothing here.
}