Как использовать gradle zip в локальной системе без загрузки при использовании gradle-wrapper


88

Я пытаюсь создать проект Gradle с помощью gradle-wrapper ( gradlew).

Когда я использую ./gradlew build, он выводит текст

Скачивание http://services.gradle.org/distributions/gradle-1.11-bin.zip

У меня уже есть gradle-1.11-bin.zip, загруженный отдельно, и я не хочу загружать его снова при сборке.

Итак, где мне поместить gradle-1.11-bin.zip в свой проект или систему, чтобы мне не пришлось загружать снова?

gradle / wrapper / gradle-wrapper.properties выглядит следующим образом.

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

И я попытался скопировать gradle-1.11-bin.zip в gradle / wrapper / dists, что не решило проблему.

Ответы:


111

Из документации gradle-wrapper я нашел в разделе 61.1. Конфигурация

Если вы не хотите, чтобы при сборке вашего проекта через gradlew происходила какая-либо загрузка, просто добавьте zip-архив распространения Gradle в систему управления версиями в месте, указанном конфигурацией вашей оболочки. Поддерживается относительный URL-адрес - вы можете указать файл распространения относительно местоположения файла gradle-wrapper.properties.

Итак, я изменил distributionUrl свойство gradle-wrapper.propertiesна

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

Затем я сделал копию файла gradle-1.11-bin.zipin gradle/wrapper/.

Затем ./gradlew buildзагрузите локальную копию zip-архива и создайте проект.


9
Это упускает из виду главный момент оболочки, заключающийся в том, что Gradle загружается и устанавливается автоматически для всех пользователей сборки. Если вы предпочитаете использовать локальную установку, поместите ее в свой PATH и вызовите gradleвместо gradlew.
Питер Нидервизер

1
@PeterNiederwieser Да, ты прав. У меня установлен PATH, но я хотел попробовать обертку, как это рекомендуется, но я не хотел снова загружать архив с gradle. Кроме того, я новичок в Gradle.
TheKojuEffect

32
Это большое дело, если вам нужно отправить программу кому-то, у кого нет доступа в Интернет. Да, это действительно так; есть компьютеры, которые не подключены к Интернету.
Крис Джонс

3
Правда в том, что я никогда не смогу загрузить gradle в тернимал, слишком медленно
Шоу

3
Или в такой день, как сегодня, когда офисная сеть очень медленная, это хороший способ двигаться вперед. ... просто нужно не забыть вернуться, когда скорость сети снова станет нормальной. Я полагаю, также хороший трюк, если у вас есть измеренная пропускная способность.
преподобный

41

Измените gradle / gradle-wrapper.properties

Windows:

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

Linux:

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

2
Обычно я использую версию Android Studio для Windows, но иногда я открываю свои проекты в операционной системе Linux. Можно ли определить distributionUrlтаким образом, чтобы пакет Gradle ZIP был доступен в обеих ОС без изменения distributionUrlзначения?
ir-tech

1
@ ir-tech, вы можете использовать относительный путь, например file \: ///../lib/gradle-2.2.1-all.zip
AaA 06

// Не используйте android 8, так как он будет продолжать загружать распределение классов use grade 7 ionic cordova platform add android@8.0.0 // Это запустит ionic cordova platform add android@~7.1.1 --save Затем запустите ниже и на этот раз он должен получить успех (сработало для меня) ionic cordova build android
Anand_5050

15

Просто перетащите загруженный файл gradle в адресную строку браузера, а затем скопируйте адрес из адресной строки и измените gradle / wrapper / gradle-wrapper.properties следующим образом:

distributionUrl=ADDRESS THAT COPY FROM YOUR BROWSER

пример:

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

или вы можете скопировать файл gradle.zip в папку оболочки, а затем использовать относительный путь:

distributionUrl=gradle.zip

Не работает. distributionUrl автоматически корректирует https \: //services.gradle.org/distributions/gradle-4.10.3-all.zip на ionic cordova build android
Anand_5050

8

Это то, что я сделал, чтобы не редактировать всю оболочку gradle для текущих и будущих проектов.

  • Найдите свой gradle-wrapper.propertiesв папке проекта (например ./gradle/wrapper/gradle-wrapper.properties)
  • откройте файл с помощью текстового редактора, такого как Sublime Text, чтобы найти distributionUrlстроку (например,distributionUrl=http\://services.gradle.org/distributions/gradle-2.10-bin.zip

Необходим двоичный архив gradle gradle-2.10-bin.zip. Другая версия gradle-2.10-all.zipвключает в себя все, включая исходный код и документацию.

Обратите внимание, что каждый проект поставляется с разными версиями дистрибутивов Gradle, и вы можете изменить версию на ту, которая у вас есть ( gradle-x.xx-XXX.zip), которая включает двоичный файл. (например, gradle-2.11-bin.zip| gradle-2.11-all.zip).

Выполнить gradlew.batв окне или gradleв Linux, чтобы запустить оболочку для сборки проекта.

Он начнет загрузку gradle-2.10-bin.zipв .gradle\wrapper\distsвашей домашней директории (например. C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-bin). Эта загрузка происходит только один раз для каждой указанной версии Gradle.

Если вы уже скачали архив, вы можете прервать загрузку с помощью Ctrl+C

Перейдите в папку загрузки gradle, C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-all\78v82fsf226usgvgh7q2ptcvifскопируйте свою собственную копию gradle-2.10-bin.zipв этот каталог, затем удалите gradle-2.10-all.zip.partв этом каталоге.

Вот и все. Вернитесь в каталог вашего проекта для выполнения, gradlew.batи он будет использовать вашу локальную копию вместо загрузки новой.


ответ на запрос @ wcc526, он работает нормально и проще в реализации.
Banee Ishaque K

4

Это решение не сработало для меня, но помогите мне найти правильный путь, поэтому, если вы хотите установить gradle в автономном режиме, выполните следующие действия:

1- в вашем проекте в каталоге gradle откройте этот файл (gradle-wrapper.properties)

2- в последней строке вы найдете версию gradle, загрузите эту версию или скопируйте файл с другого компьютера

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

Ссылка для скачивания будет такой: http://services.gradle.org/distributions/gradle-3.3-bin.zip

3- откройте это место C: \ Users \ userName.gradle \ wrapper \ dists \ gradle-3.3-all и убедитесь, что это только одна папка (имя не имеет значения на устройствах), если какие-либо другие папки удаляют все их и нажмите синхронизацию градиента в студии Android, которая автоматически сгенерирует другую папку со случайным именем.

4- откройте эту папку и убедитесь, что на снимке экрана есть только два последних файла.

5- переместите zip-файл, который вы скачали, в эту папку

6- нажмите синхронизацию gradle в студии Android снова, предположим, что gradle будет работать нормально.

введите описание изображения здесь


2

Я нашел еще один простой способ сделать это, просто запустил свой сервер XAMPP, а затем создал папку gradleвнутри htdocs. Я добавил заархивированный файл gradle-4.4-all.zipв эту папку. Изменил URL-адрес распространения, чтобы distributionUrl=http\://localhost/gradle/gradle-4.4-all.zip я перезапустил Android, и синхронизация завершилась без каких-либо проблем.


0

Я скачиваю на

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

внутри Eclipse я заявляю: введите описание изображения здесь


Затем я очень быстро создаю новый проект Gradle (с оболочкой), не нужно загружать. (Легче, чем это решение )


да, это быстро. beacuse, в отличие от других ответов, он использует доступный в системе gradle, а не загружает распространение gradle через http или файловый протокол, распаковывает и выполняет его.
Banee Ishaque K

В моем случае сначала я использую метод @edward anderson. затем переключился на метод wcc526 (это модификация метода TheKojuEffect), наконец, на этот метод.
Banee Ishaque K

Но теперь у меня проблема с этим методом. Я использую gradle-4.0-rc-3 в своей системе. но эта версия не работает в последней студии Android (я думаю, что последняя версия - 3.0-alpha6, но у меня есть 3.0-alpha5) - всегда ошибки последней поддерживаемой версии gradle - это gradle-4.0-milestone-1, ваша версия - 4.0- RC-3. Мне нужно понизить версию моей системы до 4.0-milestone-1 или всегда использовать оболочку Gradle с проектами студии Android. есть ли способ решения этой проблемы?
Banee Ishaque K

Просто заставить gradle работать в вашей среде IDE, но не в командной строке gradle, - отличный способ не использовать или не доверять вашему инструменту сборки для чего-либо. Вы должны пытаться заставить IDE работать только ПОСЛЕ того, как вы убедитесь, что сборка командной строки прошла успешно. Сделать это наоборот - отличный способ потерять часы и дни своей жизни, пытаясь понять, почему что-то ломается случайным образом и по-разному на вашей машине и на машине всех остальных ...
Ajax

0

создать локальный сервер для имитации загрузки https (может быть, немного сложно), но он работает
1. установите tomcat, затем распакуйте и выполнитеE:\apache-tomcat-8.5.4\bin\startup.bat

2. поставить gradle-2.14.1-all.zipнаE:\apache-tomcat-8.5.4\webapps\ROOT\distributions

3. измените URL-адрес, как этот, distributionUrl=http\://localhost:8080/distributions/gradle-2.14.1-all.zip
теперь запускайте как обычно


ответ на запрос @ wcc526, он работает нормально и проще в реализации.
Banee Ishaque K

0

скопируйте свой путь, куда вы поместили файл gradle-5.0-rc-5-bin.zip, пример: путь C: / My doc / tools

если на вашем пути есть пробелы, измените его на% 20

файл: /// C: /My%20doc/tools/gradle-5.0-rc-5-bin.zip

и выполните команду:

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

0

// Не используйте android 8, так как он будет продолжать загружать распределение уровней использования 7

платформа ionic cordova добавить android@8.0.0

// Это запустится

платформа ionic cordova add android@~7.1.1 --save

Затем бегите ниже, и на этот раз он должен иметь успех (сработало для меня)

ионная кордова сборка Android

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.