Có cách nào để tôi có thể bắt buộc một nhiệm vụ được phân loại lại chạy lại hoặc đặt lại tất cả các nhiệm vụ về trạng thái UP-TO-DATE không?Đặt lại thuộc tính UP-TO-DATE của các tác vụ gradle?
Trả lời
Hãy thử chạy bản dựng của bạn với -C rebuild
để xây dựng lại bộ nhớ cache của Gradle.
Trong các phiên bản mới hơn của Gradle, sử dụng --rerun-tasks
Bạn có thể sử dụng cleanTaskname
Hãy nói rằng bạn có
:someproject:sometask1 UP-TO-DATE
:someproject:sometask2 UP-TO-DATE
:someproject:sometask3 UP-TO-DATE
Và bạn muốn để buộc chúng ta hãy nói sometask2 chạy lại bạn có thể
someproject:cleanSometask2
trước khi bạn chạy các nhiệm vụ chạy tất cả.
Dường như ở chế độ gradle, mọi tác vụ hiểu UP-TO-DATE cũng hiểu cách tự làm sạch.
Nếu bạn muốn chỉ là một nhiệm vụ duy nhất để luôn luôn chạy, bạn có thể thiết lập các outputs
tài sản bên trong của nhiệm vụ.
outputs.upToDateWhen { false }
Xin lưu ý rằng nếu tác vụ của bạn không có bất kỳ đầu vào tệp nào được xác định, Gradle có thể bỏ qua tác vụ, ngay cả khi sử dụng mã ở trên. Ví dụ: trong tác vụ Zip hoặc Sao chép, cần phải có ít nhất một tệp được cung cấp trong cấu hình cấu hình của định nghĩa tác vụ.
Điều này không có gì cho tôi. Tôi đã thêm nó vào một nhiệm vụ và nhận được "UP-TO-DATE". Điều thú vị là nó là một ZipTask và tôi đã xóa kho lưu trữ đích. – maaartinus
Thật đáng kinh ngạc khi sử dụng như sau: 'tasks.whenTaskAdded {theTask -> if (theTask.name.startsWith (" dex ")) { theTask.outputs.upToDateWhen {false} theTask.doLast {task ->. ..}}} ' –
Nó không hoạt động đối với tôi :( –
Tôi đã gặp phải trường hợp khó khăn khi đặt outputs.upToDateWhen { false }
bên trong tác vụ hoặc thêm cờ --rerun-tasks
không giúp đỡ vì nhiệm vụ setOnlyIf
tiếp tục được đặt thành false
mỗi lần tôi chạy nó.
thêm dòng sau vào build.gradle
buộc thực hiện myTask
:
gradle.taskGraph.whenReady { taskGraph ->
def tasks = taskGraph.getAllTasks()
tasks.each {
def taskName = it.getName()
if(taskName == 'myTask') {
println("Found $taskName")
it.setOnlyIf { true }
it.outputs.upToDateWhen { false }
}
}
}
- 1. tác vụ runJar gradle?
- 2. Vượt qua các thuộc tính cho tác vụ tùy chỉnh gradle
- 3. Cố gắng hiểu các thuộc tính của dự án gradle
- 4. Thuộc tính Gradle/Groovy
- 5. Đầu vào tác vụ so với các nguồn tác vụ
- 6. Thực hiện SQL trong tác vụ Gradle?
- 7. Thuộc tính dựa trên Gradle
- 8. Đặt lại thuộc tính từ lưới thuộc tính
- 9. Tác vụ sao chép Gradle: Cách ghi đè các tệp hiện có?
- 10. Lặp lại các thuộc tính của lớp
- 11. Tác vụ lặp lại của Android
- 12. Thêm thuộc tính tùy chỉnh vào Tác vụ?
- 13. Đặt lại các thuộc tính thu phóng d3
- 14. Làm cách nào để khởi động lại hoặc đặt lại các thuộc tính của một lớp?
- 15. Chỉ chạy tác vụ Ant trong Maven nếu thuộc tính được đặt
- 16. Plugin Android Gradle - thêm thuộc tính hương vị tùy chỉnh?
- 17. Đặt lại thanh tác vụ sau khi sử dụng SearchView
- 18. Làm cách nào tôi có thể sử dụng Tác vụ CreateStartScripts của Gradle
- 19. Cách đặt đúng URL dịch vụ trong thuộc tính dịch vụ CAS của Spring
- 20. Tôi có thể đặt thuộc tính `thuộc tính` của` UILabel`
- 21. Đặt thuộc tính với EventTrigger
- 22. Javadoc với Gradle: Không lấy các thư viện trong khi chạy tác vụ javadoc
- 23. Emacs org-mode - các tác vụ phụ thuộc
- 24. Lấy lại các thuộc tính mặc định sau khi áp dụng đặt lại CSS toàn cục
- 25. Làm tăng tác dụng của thuộc tính để ghi đè các thuộc tính trong các lớp con
- 26. Lặp lại các thuộc tính JsonObject
- 27. Đặt thuộc tính giá trị của RadioButton
- 28. Cách đặt lại thuộc tính biến đổi UIImageView
- 29. Gradle - Tôi có thể bao gồm đầu ra của nhiệm vụ trong các phụ thuộc dự án
- 30. Tìm kiếm các dịch vụ OSGI theo các thuộc tính
này chắc chắn công trình. Có nhiệm vụ "cleanAll" nào không? –
'gradle clean' sẽ làm sạch mọi thứ cho dự án bạn đang ở. Về cơ bản, xóa thư mục đầu ra chính của bạn là '/ build' theo mặc định. Đây có phải là những gì bạn đang tìm kiếm? –
Không. Điều đó sẽ không được thiết lập lại cập nhật nếu cập nhật được chụp là không có tệp đầu ra cho một tác vụ nhất định. Đó là, nếu tôi có một phần của sự phá vỡ xây dựng nhưng thành công tổng thể, trạng thái bị bắt là sai, và tôi cần phải xóa nó. –