Есть ли способ заставить задачу gradle снова запускаться или сбросить все задачи обратно в состояние НЕ АКТУАЛЬНО ?
106
Попробуйте запустить свою сборку с -C rebuild
восстановлением кеша Gradle.
В более новых версиях Gradle используйте --rerun-tasks
Если вы хотите, чтобы всегда выполнялась только одна задача, вы можете установить outputs
свойство внутри задачи.
outputs.upToDateWhen { false }
Имейте в виду, что если ваша задача не имеет определенных файловых входов, Gradle может пропустить задачу, даже при использовании приведенного выше кода. Например, в задаче Zip или Copy должен быть хотя бы один файл, предоставленный на этапе конфигурации определения задачи.
tasks.whenTaskAdded { theTask -> if (theTask.name.startsWith("dex")) { theTask.outputs.upToDateWhen { false } theTask.doLast { task ->... }}}
Ты можешь использовать
cleanTaskname
Допустим, у вас есть
И вы хотите заставить снова запустить sometask2, вы можете
перед запуском задачи, которая запускает все это.
По-видимому, в gradle каждая задача, которая понимает АКТУАЛЬНОСТЬ, также понимает, как очистить себя.
источник
У меня был сложный случай, когда установка
outputs.upToDateWhen { false }
внутри задачи или добавление флага--rerun-tasks
не помогали, так как задачаsetOnlyIf
продолжала устанавливатьсяfalse
каждый раз, когда я ее запускал.Добавление следующего для
build.gradle
принудительного выполненияmyTask
:источник