2011-11-11 37 views
9

Chúng ta có một vấn đề lạ ở chỗ ngẫu nhiên và không thường xuyên, tác vụ compileJava xóa thư mục META-INF và các lớp được biên dịch để bắt đầu, chạy nhưng tác vụ processResources báo cáo cập nhật, mặc dù thư mục META-INF rõ ràng không t tồn tại.Làm thế nào tôi có thể đảm bảo rằng nhiệm vụ processResources của một bản xây dựng gradle luôn chạy?

Điều này cắn chúng tôi lớn thời gian bởi vì nó có thể là hiện vật làm cho nó tất cả các cách để sản xuất mà không có một applicationContext.xml!

Chi phí rất ít để chúng tôi thực hiện nhiệm vụ đó, có thể buộc nó chạy không, dù sao đi chăng nữa?

+1

Gradle 1.0-milestone-5 và sau đó đặt các tệp lớp và tài nguyên vào các thư mục khác nhau (xây dựng/lớp và xây dựng/tài nguyên). Nó sẽ là tốt để biết nếu điều này giải quyết vấn đề của bạn, mà không cần sử dụng một workaround. –

Trả lời

12

Có thể có một số loại lỗi không xóa bộ đệm ẩn cấp. Một giải pháp có thể là đầu tiên buộc thực hiện nhiệm vụ để làm sạch đầu ra của riêng mình bằng cách chạy cleanProcessResources.

Nếu điều đó không làm việc sau đó thử trọng các upToDateWhen vị của kết quả đầu ra của nhiệm vụ của bạn như thế này:

processResources.outputs.upToDateWhen{ false } 

Tuy nhiên tôi không biết nếu API này là vĩnh viễn.

+1

Tôi chắc chắn hy vọng nó là. Nó rất tuyệt. –

Các vấn đề liên quan