我开始将Gradle用于Android应用程序。如果开发人员无法在./src/res/values/specialfile.xml等特定位置创建文件,我希望构建失败

有点searching使我相信.doFirst会起作用

android.doFirst {
    assert file("./src/res/values/specialfile.txt").exists()
}

但是,Gradle说“找到了不受支持的Gradle DSL方法:'doFirst()'!”

我该怎么做才能断言文件的存在?

最佳答案

doFirst仅存在于任务对象上。 android不是任务。

如果即使开发人员不尝试构建也希望始终执行此测试(例如,在运行tasks任务时),则只需输入build.gradle

assert file("./src/res/values/specialfile.txt").exists()

但是,实际上不建议这样做,因为即使对于非构建任务,甚至是为IDE集成构建模型时,也要执行此操作。

在Android构建中有一个名为preBuild的任务会先执行,因此您可以通过另一个任务或通过doFirst将测试挂接到它:
preBuild.doFirst {
    assert file("./src/res/values/specialfile.txt").exists()
}

10-08 18:34