Czy istnieje sposób, aby wymusić ponowne uruchomienie zadania oceny lub zresetować wszystkie zadania do stanu, w którym nie są aktualne ?
106
Spróbuj uruchomić kompilację z -C rebuild
tym, że odbudowuje pamięć podręczną Gradle'a.
W nowszych wersjach Gradle użyj --rerun-tasks
Jeśli chcesz, aby zawsze było uruchamiane tylko jedno zadanie, możesz ustawić outputs
właściwość wewnątrz zadania.
outputs.upToDateWhen { false }
Należy pamiętać, że jeśli twoje zadanie nie ma żadnych zdefiniowanych plików wejściowych, Gradle może je pominąć, nawet przy użyciu powyższego kodu. Na przykład w zadaniu Zip lub Copy musi istnieć co najmniej jeden plik dostarczony w fazie konfiguracji definicji zadania.
tasks.whenTaskAdded { theTask -> if (theTask.name.startsWith("dex")) { theTask.outputs.upToDateWhen { false } theTask.doLast { task ->... }}}
Możesz użyć
cleanTaskname
Powiedzmy, że masz
I chcesz zmusić, powiedzmy, zadanie2 do ponownego uruchomienia, możesz
przed uruchomieniem zadania, które to wszystko uruchamia.
Najwyraźniej w gradle każde zadanie, które rozumie AKTUALNE, również rozumie, jak się oczyścić.
źródło
Miałem trudny przypadek, w którym ustawienie
outputs.upToDateWhen { false }
wewnątrz zadania lub dodanie flagi--rerun-tasks
nie pomogło, ponieważ zadaniesetOnlyIf
było ustawiane zafalse
każdym razem, gdy je uruchomiłem.Dodanie następujących elementów
build.gradle
wymuszających wykonaniemyTask
:źródło