2014-07-17 21 views
44

gì chính xác là sự khác biệt giữa các tùy chọn Gradle Android Studio:Android Studio: "Use default gradle wrapper" và "Sử dụng wrapper gradle tùy biến"

Android Studio->Preferences->Gradle

Use default gradle wrapper (recommended)Use customizable gradle wrapper?

Nền:

Tôi đang làm việc trên một dự án Android trong Android Studio và sử dụng trình bao bọc Gradle.

Tuy nhiên, khi tôi sử dụng các thiết lập Android Studio "Sử dụng wrapper gradlew tùy biến" mỗi khi thành viên trong nhóm của tôi đồng bộ các dự án Android Studio sử dụng lệnh gui:

enter image description here

họ thấy ngày gradle/wrapper/gradle-wrapper.properties đang được cập nhật (và dẫn đến một sự khác biệt thêm về repo git).

Chuyển sang "Sử dụng trình bao bọc gradle mặc định" dường như giải quyết vấn đề này.

+0

_Chuyển sang "Sử dụng trình bao bọc gradle mặc định" dường như giải quyết vấn đề này._ Đây là câu trả lời đúng! – Natix

Trả lời

37

Xem IntelliJ IDEA giúp đỡ here:

  • Sử dụng wrapper gradle mặc định có nghĩa là Gradle kiểm soát số phiên bản
  • Sử dụng wrapper gradle tùy biến có nghĩa là IDEA điều khiển số phiên bản

của trình bao bọc gradle. Số phiên bản được lưu trữ trong gradle/wrapper/gradle-wrapper.properties. Vì vậy, khi bạn chọn "sử dụng trình bao bọc gradle tùy chỉnh" mỗi lần bạn mở dự án với IDEA, nó sẽ thay đổi tệp thuộc tính để điều chỉnh phiên bản trình bao bọc mà bạn đã chỉ định trong dự án IDEA.

Vì lợi ích của các bản dựng lặp lại (ngay cả trên máy chủ tạo liên tục không chạy IDEA), hãy cho Gradle kiểm soát số phiên bản và sử dụng trình bao bọc gradle mặc định.

Bạn có thể thiết lập số phiên bản được sử dụng bởi Gradle bên build.gradle của bạn với

// needs at least Gradle V1.7 
wrapper { 
    gradleVersion = '2.2.1' 
} 

hoặc

// works with every Gradle version 
task wrapper(type: Wrapper) { 
    gradleVersion = '2.2.1' 
} 

Ghi chú: đừng quên rằng cấu hình này chỉ được sử dụng cho thế hệ của wrapper. Để kích hoạt nó, bạn phải thực hiện thế hệ với gradlew wrapper. Nhiệm vụ này cập nhật các gradle-wrapper.properties được sử dụng sau đó cho tất cả các hành vi bao bọc.

+1

Có thể đáng làm rõ rằng ví dụ cấu hình trình bao build.gradle được cung cấp là định cấu hình * thế hệ * của tập lệnh bao bọc gradle và tệp thuộc tính chứ không phải phương pháp thay thế phiên bản gradle cho dự án có tệp trình bao bọc đã tạo –

+0

Chính xác, ví dụ cấu hình trình bao bọc build.gradle được cung cấp cấu hình tạo ra trình bao bọc gradle (được thực thi với 'wralew wrapper' :-)). Khi nó được tạo ra, nó được sử dụng - bất cứ điều gì được chỉ định trong 'build.gradle'.) – ChrLipp

+2

Tôi hiểu.Nhưng nó đã cho tôi khá một số nghiên cứu sau khi đọc câu trả lời của bạn để tìm ra rằng miếng ngon. Tôi đã cố gắng đề xuất một chỉnh sửa cho câu trả lời của bạn (tuyệt vời, cảm ơn bạn!) Để làm cho phần đó rõ ràng hơn một chút. –

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