Android 如果满足特定条件,如何停止梯度同步

Android 如果满足特定条件,如何停止梯度同步,android,gradle,Android,Gradle,我有一个doNecessaryJob任务,它依赖于预处理任务。如果预处理中的某个条件为真,我想立即停止同步。我该怎么做 我的部分成绩在这里: task preProcessing() { Gradle gradle = getGradle() String tskReqStr = gradle.getStartParameter().getTaskRequests().toString() Pattern pattern if (tskReqStr.contain

我有一个
doNecessaryJob
任务,它依赖于
预处理任务。如果
预处理
中的某个条件为真,我想立即停止同步。我该怎么做

我的部分成绩在这里:

task preProcessing() {
    Gradle gradle = getGradle()
    String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()
    Pattern pattern
    if (tskReqStr.contains("assemble"))
        pattern = Pattern.compile("assemble(\\w+)(Release|Debug)")
    else
        pattern = Pattern.compile("generate(\\w+)(Release|Debug)")
    Matcher matcher = pattern.matcher(tskReqStr)
    if (matcher.find()) {
        // do processing here
    } else {
        println "Error, stopping the sync."
        // !STOP THE GRADLE SYNC HERE DUE TO ERROR!
    }
}
task doNecessaryJob() {
    dependsOn preProcessing

    // do necessary processing here that depends on variables from preProcessing task
}

我在中检查了其他解决方案,但似乎都指向命令行解决方案,例如。

我找到了它。我使用了
GradleException
如下:

task preProcessing() {
    Gradle gradle = getGradle()
    String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()
    Pattern pattern
    if (tskReqStr.contains("assemble"))
        pattern = Pattern.compile("assemble(\\w+)(Release|Debug)")
    else
        pattern = Pattern.compile("generate(\\w+)(Release|Debug)")
    Matcher matcher = pattern.matcher(tskReqStr)
    if (matcher.find()) {
        // do processing here
    } else {
        throw new GradleException("Error, stopping the sync.")  // <--- THE FIX
    }
}
任务预处理(){
Gradle-Gradle=getGradle()
字符串tskReqStr=gradle.getStartParameter().getTaskRequests().toString()
图案
如果(tskReqStr.包含(“组装”))
pattern=pattern.compile(“汇编(\\w+)(发行版|调试)”)
其他的
pattern=pattern.compile(“生成(\\w+)(发布|调试)”)
Matcher Matcher=pattern.Matcher(tskReqStr)
if(matcher.find()){
//在这里处理吗
}否则{
抛出新的GradleException(“错误,停止同步”)//