Cách sử dụng gradle zip trong hệ thống cục bộ mà không cần tải xuống khi sử dụng gradle-wrapper


88

Tôi đang cố gắng xây dựng một dự án gradle với gradle-wrapper ( gradlew).

Khi tôi xây dựng với ./gradlew build, nó sẽ xuất ra văn bản

Đang tải xuống http://services.gradle.org/distributions/gradle-1.11-bin.zip

Và tôi đã tải xuống riêng gradle-1.11-bin.zip và tôi không muốn tải xuống lại khi tôi xây dựng.

Vì vậy, tôi sẽ đặt gradle-1.11-bin.zip ở đâu trong dự án hoặc hệ thống của mình để không phải tải xuống lại?

gradle / wrapper / gradle-wrapper.properties như sau.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-bin.zip

Và tôi đã thử sao chép gradle-1.11-bin.zip vào gradle / wrapper / dists mà không giải quyết được vấn đề.

Câu trả lời:


111

Từ tài liệu gradle-wrapper , tôi đã tìm thấy trong phần 61.1. Cấu hình

Nếu bạn không muốn bất kỳ quá trình tải xuống nào xảy ra khi dự án của bạn được tạo qua gradlew, chỉ cần thêm zip phân phối Gradle vào kiểm soát phiên bản của bạn tại vị trí được chỉ định bởi cấu hình trình bao bọc của bạn. Một URL tương đối được hỗ trợ - bạn có thể chỉ định tệp phân phối liên quan đến vị trí của tệp gradle-wrapper.properties.

Vì vậy, tôi đã thay đổi distributionUrl tài sản gradle-wrapper.propertiesthành

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=gradle-1.11-bin.zip

Sau đó, tôi đã tạo một bản sao của gradle-1.11-bin.ziptrong gradle/wrapper/.

Sau đó, ./gradlew buildtải xuống bản sao zip cục bộ và xây dựng dự án.


9
Điều này bỏ sót một điểm chính của trình bao bọc, đó là Gradle được tải xuống và cài đặt tự động cho tất cả người dùng bản dựng. Nếu bạn thích sử dụng cài đặt cục bộ, hãy đặt nó trên PATH của bạn và gọi gradlethay vì gọi gradlew.
Peter Niederwieser

1
@PeterNiederwieser Vâng, bạn nói đúng. Tôi đã thiết lập PATH nhưng tôi muốn thử trình bao bọc vì nó được khuyến nghị theo cách được khuyến nghị nhưng tôi không muốn tải xuống lại gradle zip. Ngoài ra, tôi mới học gradle.
TheKojuEffect

31
Đây là một vấn đề lớn nếu bạn cần gửi phần mềm cho ai đó không có quyền truy cập Internet. Vâng, đó là điều gì đó thực sự xảy ra; có máy tính không được kết nối với Internet.
Chris Jones

2
Sự thật là tôi không bao giờ có thể tải xuống gradle một cách khủng khiếp, quá chậm
Shaw

3
Hoặc vào một ngày như hôm nay khi mạng văn phòng rất chậm, đây là một bản hack hay để tiếp tục tiến lên. ... chỉ cần nhớ hoàn nguyên khi tốc độ mạng bình thường trở lại. Tôi cho rằng cũng là một mẹo hay nếu bạn đã đo băng thông.
rerend

39

Modifty the gradle / gradle-wrapper.properties

Các cửa sổ:

distributionUrl=file\:/d:/gradle-2.2.1-all.zip

linux:

distributionUrl=file\:/tmp/gradle-2.2.1-all.zip

2
Thông thường, tôi sử dụng phiên bản Windows Studio của Android Studio nhưng đôi khi tôi mở các dự án của mình trong hệ điều hành Linux. Có thể xác định distributionUrltheo cách mà gói Gradle ZIP có thể truy cập được trên cả hai hệ điều hành mà không thay đổi distributionUrlgiá trị không?
ir-tech

1
@ ir-tech, bạn có thể sử dụng đường dẫn tương đối, giống như tập tin \: ///../lib/gradle-2.2.1-all.zip
AAA

// Không sử dụng android 8 vì nó sẽ tiếp tục tải xuống bản phân phối lớp sử dụng nền tảng cordova ion cấp 7 thêm android@8.0.0 // Điều này sẽ chạy nền tảng cordova ionic thêm android@~7.1.1 --save Sau đó chạy bên dưới và lần này nó sẽ nhận được thành công (Làm việc cho tôi) cordova ion dựng android
Anand_5050

15

Chỉ cần kéo tệp gradle đã tải xuống trong thanh địa chỉ trình duyệt của bạn, sau đó sao chép địa chỉ từ thanh địa chỉ và thay đổi gradle / wrapper / gradle-wrapper.properties như sau:

distributionUrl=ADDRESS THAT COPY FROM YOUR BROWSER

thí dụ:

distributionUrl=file:///E:/gradle/gradle-4.1-all.zip

hoặc bạn có thể sao chép tệp gradle.zip vào thư mục trình bao bọc sau đó sử dụng đường dẫn tương đối:

distributionUrl=gradle.zip

Không làm việc. distributionUrl get tự động chính xác đến https \: //services.gradle.org/distributions/gradle-4.10.3-all.zip trên cordova ion dựng Android
Anand_5050

8

Đây là những gì tôi đã làm để tránh chỉnh sửa tất cả các trình bao bọc gradle cho các dự án hiện tại và tương lai.

  • Xác định vị trí của bạn gradle-wrapper.propertiestrong thư mục dự án của bạn (ví dụ ./gradle/wrapper/gradle-wrapper.properties:)
  • mở tệp bằng trình soạn thảo văn bản như Sublime Text để định vị distributionUrldòng (ví dụ:.distributionUrl=http\://services.gradle.org/distributions/gradle-2.10-bin.zip

Kho lưu trữ nhị phân gradle cần thiết là gradle-2.10-bin.zip. Một phiên bản khác gradle-2.10-all.zipbao gồm mọi thứ bao gồm mã nguồn và tài liệu.

Xin lưu ý rằng mỗi dự án có các phiên bản phân phối gradle khác nhau và bạn có thể thay đổi phiên bản thành phiên bản bạn có ( gradle-x.xx-XXX.zip) bao gồm nhị phân. (ví dụ: gradle-2.11-bin.zip| gradle-2.11-all.zip).

Thực thi gradlew.battrên window hoặc gradletrên linux để khởi động trình bao bọc để xây dựng dự án.

Nó sẽ bắt đầu tải xuống thư gradle-2.10-bin.zipmục chính .gradle\wrapper\distscủa bạn (ví dụ C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-bin:). Việc tải xuống này chỉ xảy ra một lần cho mỗi phiên bản gradle được chỉ định.

Nếu bạn đã tải xuống tệp lưu trữ trước khi bạn có thể kết thúc tải xuống bằng Ctrl+C

Đi vào vị trí tải xuống gradle, C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-all\78v82fsf226usgvgh7q2ptcvifsao chép bản sao của riêng bạn gradle-2.10-bin.zipvào thư mục đó rồi xóa gradle-2.10-all.zip.parttrong thư mục đó.

Đó là tất cả. Quay lại thư mục dự án của bạn để thực thi gradlew.batvà nó sẽ sử dụng bản sao cục bộ của bạn thay vì tải xuống bản mới.


câu trả lời thanh toán của @ wcc526, nó hoạt động tốt và dễ thực hiện hơn.
Banee Ishaque K

4

Giải pháp này không hiệu quả với tôi nhưng hãy giúp tôi làm đúng cách, vì vậy nếu bạn muốn cài đặt gradle ngoại tuyến, hãy làm theo các bước sau:

1- tại dự án của bạn trong thư mục gradle, hãy mở tệp này (gradle-wrapper.properties)

2- ở dòng cuối cùng, bạn sẽ tìm thấy phiên bản gradle, tải xuống phiên bản đó hoặc sao chép tệp từ máy tính khác

distributionUrl=http\://services.gradle.org/distributions/gradle-3.3-bin.zip

Liên kết tải xuống sẽ như thế này: http://services.gradle.org/distributions/gradle-3.3-bin.zip

3- mở vị trí này C: \ Users \ userName.gradle \ wrapper \ dists \ gradle-3.3-all và đảm bảo rằng chỉ là một thư mục (tên không quan trọng ở các thiết bị) nếu có bất kỳ thư mục nào khác xóa tất cả chúng và nhấn đồng bộ hóa gradle trên android studio sẽ tự động tạo một thư mục khác với tên ngẫu nhiên.

4- mở thư mục đó và đảm bảo rằng chỉ có hai tệp cuối cùng trong ảnh chụp màn hình.

5- di chuyển tệp zip mà bạn đã tải xuống vào thư mục đó

6- nhấn đồng bộ gradle trên android studio một lần nữa, giả sử rằng gradle sẽ hoạt động tốt.

nhập mô tả hình ảnh ở đây


2

Tôi đã tìm thấy một cách dễ nhất khác để thực hiện việc này là khởi động máy chủ XAMPP của mình và sau đó tạo một thư mục gradlebên trong htdocs. Tôi đã thêm tệp nén gradle-4.4-all.zipvào bên trong thư mục đó. Đã thay đổi url phân phối thành distributionUrl=http\://localhost/gradle/gradle-4.4-all.zip Tôi đã khởi động lại android và quá trình đồng bộ hóa hoàn tất mà không gặp bất kỳ sự cố nào.


0

Tôi tải xuống

C:\data\Setup\Development\Gradle 2.11\gradle-2.11-all.zip

bên trong Eclipse, tôi tuyên bố: nhập mô tả hình ảnh ở đây


Sau đó, tôi tạo dự án Gradle mới (với trình bao bọc) rất nhanh, không cần tải xuống. (Dễ hơn giải pháp này )


ya, nó là nhanh chóng. không giống như các câu trả lời khác, nó sử dụng gradle có sẵn trong hệ thống hơn là tải xuống bản phân phối gradle thông qua http hoặc giao thức tệp, giải nén và thực thi nó.
Banee Ishaque K

Trong trường hợp của tôi, trước tiên tôi sử dụng phương pháp của @edward anderson. sau đó chuyển sang phương thức của wcc526 (nó là một sửa đổi của phương pháp TheKojuEffect), cuối cùng là phương pháp này.
Banee Ishaque K

Nhưng bây giờ tôi có một vấn đề với phương pháp này. tôi đang sử dụng gradle-4.0-rc-3 trên hệ thống của mình. nhưng phiên bản đó không hoạt động cho android studio mới nhất (tôi nghĩ phiên bản mới nhất là 3.0-alpha6, nhưng tôi có 3.0-alpha5) - nó luôn bị lỗi bởi phiên bản gradle được hỗ trợ mới nhất là gradle-4.0-mốc-1, phiên bản của bạn là 4.0- rc-3. tôi phải hạ cấp hệ thống của mình xuống 4.0-mốc-1 hoặc luôn sử dụng trình bao bọc gradle với các dự án studio android. có cách giải quyết nào cho vấn đề này không?
Banee Ishaque K

Chỉ làm cho gradle hoạt động trong IDE của bạn chứ không phải dòng lệnh gradle là một cách tuyệt vời để không thể sử dụng hoặc tin tưởng công cụ xây dựng của bạn để làm bất cứ điều gì. Bạn chỉ nên cố gắng làm cho IDE hoạt động SAU KHI bạn xác minh rằng việc xây dựng dòng lệnh thành công. Làm nó theo cách khác xung quanh là một cách tuyệt vời để giờ mất và các ngày trong cuộc sống của bạn cố gắng tìm ra lý do tại sao điều phá vỡ một cách ngẫu nhiên và khác nhau trên của bạn và tất cả mọi người máy của người khác ...
Ajax

0

tạo máy chủ cục bộ để mô phỏng tải xuống https (có thể hơi phức tạp), nhưng nó hoạt động
1. cài đặt tomcat sau đó giải nén và thực thiE:\apache-tomcat-8.5.4\bin\startup.bat

2. nhập gradle-2.14.1-all.zipvàoE:\apache-tomcat-8.5.4\webapps\ROOT\distributions

3. thay đổi url như thế này distributionUrl=http\://localhost:8080/distributions/gradle-2.14.1-all.zip
bây giờ chạy như bình thường


câu trả lời thanh toán của @ wcc526, nó hoạt động tốt và dễ thực hiện hơn.
Banee Ishaque K

0

sao chép đường dẫn của bạn nếu bạn đặt tệp gradle-5.0-rc-5-bin.zip example: path C: / My doc / tools

nếu bạn có một số khoảng trắng trong đường dẫn của mình, hãy thay đổi nó bằng% 20

tệp: /// C: /My%20doc/tools/gradle-5.0-rc-5-bin.zip

và thực hiện lệnh:

$ gradlew wrapper --gradle-version 5.0-rc-5

0

// Không sử dụng android 8 vì nó sẽ tiếp tục tải xuống bản phân phối lớp sử dụng lớp 7

nền tảng cordova ionic thêm android@8.0.0

// Điều này sẽ chạy

nền tảng cordova ionic thêm android@~7.1.1 --save

Sau đó, chạy bên dưới và lần này nó sẽ thành công (Làm việc cho tôi)

ionic cordova xây dựng Android

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.