Подтвердить что ты не робот

Используя Gradle, как я могу гарантировать, что файл существует в определенном месте?

Я начинаю использовать Gradle для приложения для Android. Я хотел бы, чтобы сборка завершилась неудачей, если разработчику не удалось создать файл в определенном месте, например ./src/res/values/specialfile.xml

Немного поиск заставило меня поверить, что .doFirst будет работать

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

Однако Gradle говорит, что "неподдерживаемый Gradle метод DSL найден:" doFirst() "!

Что я могу сделать, чтобы утвердить существование файла?

4b9b3361

Ответ 1

doFirst существует только для объектов задач. android не является задачей.

Если бы этот тест всегда выполнялся, даже если разработчик не пытается построить (например, при запуске задачи tasks), вы должны просто добавить в свой build.gradle

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

Однако это действительно не рекомендуется, поскольку это будет выполняться даже для задач без сборки или даже когда модель построена для интеграции IDE.

Существует задача с именем preBuild, которая выполняется перед чем-либо в сборке Android, поэтому вы можете подключить к ней тест либо через другую задачу, либо через doFirst:

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