在条件下停止gradle

时间:2017-10-10 15:59:44

标签: android gradle android-gradle build.gradle

当我尝试在不满足条件时停止gradle时,我遇到了问题。 我希望当我执行特定任务并且不存在文件时抛出GradleException但是它无法与Android Studio同步。

我的代码:

def mapFile = project.rootProject.file('../../maps.json')
buildConfigField "error", "BUILD_ERROR", '"maps.json is missing"'
if(!mapFile.exists()) throw new GradleException("File does not exist")

我找到了这个解决方案(不是很喜欢它),代码为:

buildConfigField "error", "BUILD_ERROR", '"maps.json is missing"'

因此BuildConfig将生成一个错误变量,并且gradle将停止。实际抛出异常和同步的任何其他选项都不会失败?

1 个答案:

答案 0 :(得分:1)

要让任务失败而不是整个构建,您必须在任务执行时引发异常:

task myTask(type: MyType) {
    def mapFile = project.rootProject.file('../../maps.json')
    // do some configuration ...
    doFirst {
        if(!mapFile.exists()) throw new GradleException("File does not exist")
    }
}