Tại sao tôi sẽ chạy 'xây dựng sạch sẽ gradle' thay vì 'xây dựng gradle'? Từ những gì tôi hiểu, gradle có thể phát hiện các thay đổi nguồn và cập nhật các tạo phẩm cuối cùng nếu cần. Vậy tại sao tôi vẫn cần phải 'làm sạch'?Tại sao chạy 'gradle clean'?
Trả lời
clean task được xác định bởi java plugin và nó chỉ đơn giản là loại bỏ thư mục buildDir, do đó làm sạch mọi thứ kể cả phần còn lại từ các bản dựng trước không còn liên quan. Không làm như vậy có thể dẫn đến việc xây dựng ô uế có thể bị hỏng do tạo các tạo phẩm được tạo bởi các bản dựng trước đó.
Ví dụ giả định rằng bản dựng của bạn chứa một số thử nghiệm không thành công và bạn đã quyết định rằng các thử nghiệm này đã lỗi thời do đó cần phải được loại bỏ. Nếu không làm sạch kết quả kiểm tra (bằng cách sử dụng nhiệm vụ cleanTest) hoặc xây dựng hoàn toàn (bằng cách chạy nhiệm vụ sạch), bạn sẽ gặp khó khăn với kết quả kiểm tra không thành công, điều này sẽ làm cho bản dựng của bạn thất bại. Các tác dụng phụ tương tự cũng có thể xảy ra với các tài nguyên/lớp được loại bỏ khỏi các nguồn nhưng vẫn nằm trong thư mục build không được làm sạch.
cảm ơn bạn đã trả lời. Tôi biết những gì sạch sẽ, nhưng tôi không biết một trường hợp cụ thể khi nó hữu ích. Bạn có thể cung cấp ví dụ như vậy để hiểu rõ hơn không? Cảm ơn. –
Chắc chắn. Giả sử rằng bản dựng của bạn có chứa một số thử nghiệm không thành công và bạn đã quyết định rằng các quá trình này đã lỗi thời do đó cần được loại bỏ. Nếu không làm sạch kết quả kiểm tra (bằng cách sử dụng nhiệm vụ cleanTest) hoặc xây dựng hoàn toàn (bằng cách chạy nhiệm vụ sạch), bạn sẽ gặp khó khăn với kết quả kiểm tra không thành công, điều này sẽ làm cho bản dựng của bạn thất bại. Các tác dụng phụ tương tự cũng có thể xảy ra với các tài nguyên/lớp được loại bỏ khỏi các nguồn nhưng vẫn nằm trong thư mục build không được làm sạch. –
Làm cho tinh thần. Bạn có thể chỉnh sửa câu trả lời của bạn để bao gồm ví dụ này để tôi có thể đánh dấu nó là chính xác không? –
Các công cụ xây dựng khác như buck sẽ phát hiện thấy một số thử nghiệm đã bị xóa và sẽ không chạy chúng mà không cần chạy mục tiêu sạch. Tôi nghĩ rằng đây là pitfall của gradle.
Điều này phần lớn là không chính xác, Gradle có đầu vào và đầu ra theo dõi và hầu như tất cả các nhiệm vụ có thể xử lý trường hợp này. – mkobit
- 1. Tại sao sẽ không gradle chạy từ bên trong một công việc jenkins
- 2. Chạy Gradle từ Maven
- 3. Android Studio Build/Clean
- 4. Tại sao ứng dụng web Spring Boot của tôi không chạy hoàn toàn ở Gradle?
- 5. Tại sao các biến môi trường luôn rỗng thành Gradle (chỉ) khi chạy từ IntelliJ IDEA?
- 6. Chạy Karma bằng Gradle?
- 7. Nhiệm vụ tùy chỉnh Gradle chạy nhiều nhiệm vụ
- 8. Tại sao php không chạy?
- 9. Hoàn tác Git Clean
- 10. Chạy scala REPL từ gradle?
- 11. Không thể chạy chương trình "gradle" trong Jenkins
- 12. Tại sao bộ lọc 'git status' chạy bộ lọc?
- 13. Chạy Gradle Xây dựng Rất dài
- 14. Final clean up in specs2
- 15. "setup.py clean" chính xác là gì?
- 16. Trình khởi chạy tĩnh chạy sau hàm tạo, tại sao?
- 17. Tại sao hbm2ddl.SchemaExport không chạy ở đây?
- 18. Tại sao conhost.exe được khởi chạy?
- 19. Tại sao Parallel.ForEach không chạy nhiều luồng?
- 20. Tại sao IPython QtConsole không khởi chạy?
- 21. Tại sao genymotion lại chạy chậm?
- 22. Tại sao laravel homestead không chạy Apache
- 23. gradle - sao chép tệp sau khi tạo thế hệ
- 24. Chạy hết đống chạy Proguard trong Android Gradle build
- 25. chạy phương pháp chính sử dụng gradle "chạy" nhiệm vụ
- 26. Có thể có bất kỳ sự khác biệt nào giữa Clean + Rebuild và Clean + Build
- 27. Chạy Selenium webdriver-manager từ Gradle
- 28. Chạy nhật thực Jetty 9 với Gradle
- 29. Chạy các kịch bản Groovy từ Gradle
- 30. Gradle biên dịch nhưng không chạy thử nghiệm TestNG
Để đảm bảo các lỗi bạn nhận được không phải do lập chỉ mục sai theo gradle. Hoặc nếu bạn thêm thư viện mới thay đổi mọi phụ thuộc. – Tschallacka
"gradel clean build" giúp loại bỏ tất cả các phụ thuộc được tạo trong khi xây dựng lần cuối và nhận các phụ thuộc mới từ máy chủ và xây dựng dự án của bạn. Cảm ơn – Naitik
@Naitik, điều đó không đúng. – Opal