2014-10-28 34 views
9

Tôi đang làm việc Với Android Studio 8.9Android Studio: Dependencies Snapshot Đừng Cập nhật đúng

Tôi đã có một build.gradle với sự phụ thuộc sau đây định nghĩa:

compile ('my.program.commons:my-program-commons:[email protected]') 

sự phụ thuộc này được lưu trữ trong kho lưu trữ Sonatype nexus riêng.

Khi tôi thực hiện thay đổi trong mã my.program.commons, tôi tải lên mối quan hệ.

Vấn đề là khi tôi sau đó cố gắng biên dịch chống lại các SNAPSHOT mới phòng thu android sẽ thất bại để nhận thay đổi.

Khi chạy từ dòng lệnh gradle sẽ xây dựng thành công - nhưng Android Studio sẽ không nhận ra các tập tin mới.

Nếu tôi làm một phiên bản đánh dấu - nói từ 0.0.2-SNAPSHOT để 0.0.3-SNAPSHOT Android Studio sẽ hiểu được phiên bản mới và tải về và mọi thứ hoạt động ra tốt đẹp.

Tôi không muốn phải làm một phiên bản đánh dấu nhỏ trên mỗi sự thay đổi duy nhất.

Trả lời

5

Bạn cần phải cấu hình trong suốt thời gian bộ nhớ cache, bởi gradle mặc định sẽ không tìm kiếm thông tin cập nhật trong 24 giờ:

http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:controlling_caching

+0

Cảm ơn, tôi figured này ra ngày hôm qua. Điều đó kết hợp với việc đánh dấu sự phụ thuộc là "thay đổi" đã giải quyết vấn đề này. –

+0

Dường như với tôi như đánh dấu sự phụ thuộc là "thay đổi" chỉ cho phép nó sử dụng thời gian lưu trữ có thể khác (ngắn hơn) nếu bạn chỉ định. Nếu không, nó chỉ cần sử dụng thời gian lưu trữ "bình thường", bạn cũng có thể chỉ định thời gian ngắn hơn bình thường. – DataGraham

8

Bạn cũng có thể đặt một lá cờ gọi "thay đổi" sẽ kích hoạt Gradle để luôn kéo mới nhất, ví dụ:

compile ('my.program.commons:my-program-commons:[email protected]') { 
changing = true; 
} 
+1

Tôi thấy rằng bạn phải ghép nối cả hai thời gian bộ nhớ cache và giá trị thay đổi được yêu cầu để đảm bảo điều này hoạt động chính xác. Mặc dù vậy tôi vẫn phải chạy - phụ thuộc -frfrency đôi khi. Kiểm tra nhận xét của tôi về câu trả lời được chấp nhận. –

+0

cách sử dụng - phụ thuộc -refresh? – Fang

+1

từ dòng lệnh: ./gradlew --refresh-dependencies –

9

Trong trường hợp của tôi, sử dụng changing = true không hoạt động đối với tôi. Nhưng việc định cấu hình các mô-đun thay đổi bộ nhớ cache sẽ giải quyết được sự cố Mẫu mã dưới đây, thêm vào build.gradle file:

configurations.all { 
    // Don't cache changing modules at all. 
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds' 
} 

Xem: https://docs.gradle.org/current/userguide/dependency_management.html

+0

Điều này nằm trong phần 'phụ thuộc '. –

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