Jak używać gradle zip w systemie lokalnym bez pobierania podczas korzystania z gradle-wrapper


88

Próbuję zbudować projekt gradle za pomocą gradle-wrapper ( gradlew).

Kiedy buduję z ./gradlew build, wyświetla tekst

Pobieranie http://services.gradle.org/distributions/gradle-1.11-bin.zip

Gradle-1.11-bin.zip został już pobrany osobno i nie chcę go ściągać ponownie, kiedy będę budować.

Więc gdzie mam umieścić gradle-1.11-bin.zip w moim projekcie lub systemie, aby nie musieć ponownie pobierać?

gradle / wrapper / gradle-wrapper.properties jest następująca.

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

Próbowałem skopiować gradle-1.11-bin.zip do gradle / wrapper / dists, co nie rozwiązało problemu.

Odpowiedzi:


111

Z dokumentacji gradle-wrappera znalazłem w sekcji 61.1. Konfiguracja

Jeśli nie chcesz, aby pobieranie miało miejsce, gdy projekt jest budowany za pomocą gradlew, po prostu dodaj plik ZIP z dystrybucją Gradle do kontroli wersji w lokalizacji określonej przez konfigurację opakowania. Obsługiwany jest względny adres URL - można określić plik dystrybucyjny względem lokalizacji pliku gradle-wrapper.properties.

Więc zmieniłem distributionUrl właściwość gradle-wrapper.propertiesna

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

Następnie utworzyłem kopię gradle-1.11-bin.zipw gradle/wrapper/.

Następnie ./gradlew buildpobrałem lokalną kopię zip i zbudowałem projekt.


9
To pomija główny punkt opakowania, który polega na tym, że Gradle jest pobierany i instalowany automatycznie dla wszystkich użytkowników kompilacji. Jeśli wolisz używać instalacji lokalnej, umieść ją na swojej PATH i wywołaj gradlezamiast gradlew.
Peter Niederwieser

1
@PeterNiederwieser Tak, masz rację. Skonfigurowałem PATH, ale chciałem wypróbować wrapper, ponieważ jest to zalecany sposób, ale nie chciałem ponownie pobierać gradle zip. Jestem też nowy w gradle.
TheKojuEffect

32
To poważna sprawa, jeśli chcesz wysłać oprogramowanie do kogoś, kto nie ma dostępu do Internetu. Tak, to naprawdę się dzieje; są komputery, które nie są połączone z Internetem.
Chris Jones,

3
Prawda jest taka, że ​​nigdy nie mogę pobrać gradle w języku ternimal, zbyt wolno
Shaw

3
Lub w dniu takim jak dzisiaj, kiedy sieć biurowa działa bardzo wolno, jest to niezły hack, aby iść do przodu. ... wystarczy pamiętać o przywróceniu normalnej szybkości sieci. Również dobra sztuczka, jeśli przypuszczam, że mierzyłeś przepustowość.
wielebny

41

Zmodyfikuj gradle / gradle-wrapper.properties

Okna:

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

linux:

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

2
Zwykle korzystam z wersji Android Studio dla systemu Windows, ale czasami otwieram swoje projekty w systemie operacyjnym Linux. Czy można tak zdefiniować distributionUrl, aby pakiet Gradle ZIP był dostępny na obu OS bez zmiany distributionUrlwartości?
ir-tech

1
@ ir-tech, możesz użyć ścieżki względnej, na przykład file \: ///../lib/gradle-2.2.1-all.zip
AaA

// Nie używaj Androida 8, ponieważ będzie nadal pobierać dystrybucję stopni użyj platformy ionic cordova klasy 7 dodaj android@8.0.0 // Spowoduje to uruchomienie platformy ionic cordova dodaj android@~7.1.1 --zapisz Następnie uruchom poniżej i tym razem powinien odnieść sukces (zadziałało dla mnie) ionic cordova build android
Anand_5050

15

Po prostu przeciągnij pobrany plik gradle na pasek adresu przeglądarki, a następnie skopiuj adres z paska adresu i zmień gradle / wrapper / gradle-wrapper.properties w następujący sposób:

distributionUrl=ADDRESS THAT COPY FROM YOUR BROWSER

przykład:

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

lub możesz skopiować plik gradle.zip do folderu opakowania, a następnie użyć ścieżki względnej:

distributionUrl=gradle.zip

Nie działa. DistributionUrl zostanie automatycznie poprawiona na https \: //services.gradle.org/distributions/gradle-4.10.3-all.zip na ionic cordova build android
Anand_5050

8

To właśnie zrobiłem, aby uniknąć edytowania wszystkich opakowań ocen dla bieżących i przyszłych projektów.

  • Znajdź swój gradle-wrapper.propertiesw folderze projektu (np. ./gradle/wrapper/gradle-wrapper.properties)
  • otwórz plik za pomocą edytora tekstu, takiego jak Sublime Text, aby zlokalizować distributionUrllinię (np.distributionUrl=http\://services.gradle.org/distributions/gradle-2.10-bin.zip

Wymagane archiwum binarne Gradle to gradle-2.10-bin.zip. Inna wersja gradle-2.10-all.zipzawiera wszystko, w tym kod źródłowy i dokumentację.

Zwróć uwagę, że każdy projekt jest dostarczany z różnymi wersjami dystrybucji gradle i możesz zmienić wersję na tę, którą masz ( gradle-x.xx-XXX.zip), która zawiera plik binarny. (np. gradle-2.11-bin.zip| gradle-2.11-all.zip).

Wykonaj gradlew.batw oknie lub gradlena Linuksie, aby rozpocząć opakowanie i zbudować projekt.

Rozpocznie się pobieranie gradle-2.10-bin.zipdo .gradle\wrapper\distskatalogu domowego (np. C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-bin). To pobieranie odbywa się tylko raz dla każdej określonej wersji gradle.

Jeśli już pobrałeś archiwum, możesz zakończyć pobieranie za pomocą Ctrl+C

Przejdź do lokalizacji pobierania Gradle, C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-all\78v82fsf226usgvgh7q2ptcvifskopiuj własną kopię gradle-2.10-bin.zipdo tego katalogu, a następnie usuń gradle-2.10-all.zip.partw tym katalogu.

To wszystko. Wróć do katalogu projektu, aby wykonać, gradlew.bata zamiast pobierać nową, użyje Twojej kopii lokalnej.


odpowiedź checkout @ wcc526, działa dobrze i jest łatwiejsza do wdrożenia.
Banee Ishaque K,

4

To rozwiązanie nie zadziałało, ale pomóż mi znaleźć właściwą drogę, więc jeśli chcesz zainstalować gradle offline, wykonaj następujące kroki:

1- W swoim projekcie w katalogu gradle otwórz ten plik (gradle-wrapper.properties)

2- Na końcu znajdziesz wersję gradle, pobierz tę wersję lub skopiuj plik z innego komputera

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

Link do pobrania będzie wyglądał następująco: http://services.gradle.org/distributions/gradle-3.3-bin.zip

3- Otwórz tę lokalizację C: \ Users \ nazwa_użytkownika.gradle \ wrapper \ dists \ gradle-3.3-all i upewnij się, że jest to tylko jeden folder (nazwa nie ma znaczenia, że ​​jest inna na urządzeniach), jeśli są jakieś inne foldery, usuń wszystkie je i naciśnij gradle sync na Android Studio, co automatycznie wygeneruje kolejny folder z losową nazwą.

4- Otwórz ten folder i upewnij się, że zawiera tylko dwa ostatnie pliki na zrzucie ekranu.

5- Przenieś pobrany plik zip do tego folderu

6- Ponownie naciśnij sync gradle w Android Studio, przypuśćmy, że Gradle będzie działać dobrze.

wprowadź opis obrazu tutaj


2

Znalazłem inny najłatwiejszy sposób, aby to zrobić, po prostu uruchomiłem serwer XAMPP, a następnie utworzyłem folder w gradleśrodku htdocs. Dodałem spakowany plik gradle-4.4-all.zipdo tego folderu. Zmieniono adres URL dystrybucji na distributionUrl=http\://localhost/gradle/gradle-4.4-all.zip Ponownie uruchomiłem Androida i synchronizacja zakończyła się bez żadnego problemu.


0

Pobieram do

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

wewnątrz Eclipse oświadczam: wprowadź opis obrazu tutaj


Następnie tworzę nowy projekt Gradle (z opakowaniem) bardzo szybko, bez potrzeby pobierania. (Łatwiejsze niż to rozwiązanie )


tak, to jest szybkie. ponieważ, w przeciwieństwie do innych odpowiedzi, używa gradle dostępnego w systemie niż pobieranie dystrybucji gradle przez http lub protokół pliku, rozpakowywanie i wykonywanie jej.
Banee Ishaque K,

W moim przypadku najpierw geos z metodą @edward anderson. następnie przełączyłem się na metodę wcc526 (jest to modyfikacja metody TheKojuEffect), najpóźniej na tę metodę.
Banee Ishaque K,

Ale teraz mam problem z tą metodą. używam gradle-4.0-rc-3 w moim systemie. ale ta wersja nie działa w najnowszym Android Studio (myślę, że najnowsza wersja to 3.0-alpha6, ale mam 3.0-alpha5) - zawsze błędy według najnowszej obsługiwanej wersji Gradle to Gradle-4.0-Milestone-1, twoja wersja to 4.0- rc-3. Muszę obniżyć system Gradle do 4.0-milestone-1 lub zawsze używać Gradle Wrapper z projektami Android Studio. czy istnieje obejście tego problemu?
Banee Ishaque K,

Samo sprawienie, że gradle działa w twoim IDE, ale nie w wierszu poleceń gradle, to świetny sposób, aby nie móc używać ani nie ufać swojemu narzędziu do budowania. Powinieneś próbować sprawić, by IDE działało dopiero PO sprawdzeniu, czy budowa wiersza poleceń zakończyła się pomyślnie. Robi to na odwrót to świetny sposób, aby stracić godzin i dni swojego życia próbuje dowiedzieć się, dlaczego rzeczy złamać losowo a inaczej na twoje i wszyscy maszyna ...
Ajax

0

stwórz lokalny serwer do mockowania pobierania https (może trochę skomplikowany), ale działa
1. zainstaluj tomcat, następnie rozpakuj i wykonajE:\apache-tomcat-8.5.4\bin\startup.bat

2. wejście gradle-2.14.1-all.zipdoE:\apache-tomcat-8.5.4\webapps\ROOT\distributions

3. zmiana adresu URL w ten sposób distributionUrl=http\://localhost:8080/distributions/gradle-2.14.1-all.zip
działa teraz jak zwykle


odpowiedź checkout @ wcc526, działa dobrze i jest łatwiejsza do wdrożenia.
Banee Ishaque K,

0

skopiuj ścieżkę, w której umieściłeś plik gradle-5.0-rc-5-bin.zip przykład: ścieżka C: / My doc / tools

jeśli masz jakieś spacje na swojej ścieżce, zmień je za pomocą% 20

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

i wykonaj polecenie:

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

0

// Nie używaj Androida 8, ponieważ będzie on pobierał dystrybucję ocen, użyj klasy 7

platforma ionic cordova dodaj android@8.0.0

// To będzie działać

platforma ionic cordova dodaj android@~7.1.1 --zapisz

Następnie biegnij poniżej i tym razem powinno odnieść sukces (zadziałało dla mnie)

ionic cordova build android

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.