当我尝试在不满足条件时停止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将停止。实际抛出异常和同步的任何其他选项都不会失败?
答案 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")
}
}