Adakah cara agar saya dapat memaksa tugas gradle untuk dijalankan lagi, atau mengatur ulang semua tugas kembali ke status bukan UP-TO-DATE?
106
Coba jalankan build Anda yang akan membangun -C rebuild
kembali cache Gradle.
Di versi Gradle yang lebih baru, gunakan --rerun-tasks
Jika Anda hanya ingin satu tugas untuk selalu dijalankan, Anda dapat menyetel outputs
properti di dalam tugas.
outputs.upToDateWhen { false }
Perlu diketahui bahwa jika tugas Anda tidak memiliki input file yang ditentukan, Gradle dapat melewati tugas tersebut, bahkan saat menggunakan kode di atas. Misalnya, dalam tugas Zip atau Salin harus ada setidaknya satu file yang disediakan dalam fase konfigurasi definisi tugas.
tasks.whenTaskAdded { theTask -> if (theTask.name.startsWith("dex")) { theTask.outputs.upToDateWhen { false } theTask.doLast { task ->... }}}
Kamu bisa memakai
cleanTaskname
Katakanlah Anda punya
Dan Anda ingin memaksa katakanlah sesuatu harus berjalan lagi, Anda bisa
sebelum Anda menjalankan tugas yang menjalankan semuanya.
Ternyata di gradle, setiap tugas yang paham UP-TO-DATE juga paham cara membersihkan dirinya.
sumber
Saya mengalami kasus sulit di mana pengaturan
outputs.upToDateWhen { false }
di dalam tugas atau menambahkan bendera--rerun-tasks
tidak membantu karena tugassetOnlyIf
terus diatur kefalse
setiap kali saya menjalankannya.Menambahkan berikut ini untuk
build.gradle
memaksa eksekusimyTask
:sumber