Comment utiliser Gradle Zip dans le système local sans téléchargement lors de l'utilisation de Gradle-Wrapper


88

J'essaye de construire un projet gradle avec gradle-wrapper ( gradlew).

Quand je construis avec ./gradlew build, il génère du texte

Téléchargement http://services.gradle.org/distributions/gradle-1.11-bin.zip

Et j'ai déjà téléchargé gradle-1.11-bin.zip séparément et je ne veux pas le télécharger à nouveau lorsque je construis.

Alors, où dois-je mettre gradle-1.11-bin.zip dans mon projet ou système pour ne pas avoir à télécharger à nouveau?

gradle / wrapper / gradle-wrapper.properties est comme suit.

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

Et j'ai essayé de copier gradle-1.11-bin.zip dans gradle / wrapper / dists, ce qui n'a pas résolu le problème.

Réponses:


111

De la documentation gradle-wrapper , j'ai trouvé dans la section 61.1. Configuration

Si vous ne souhaitez pas qu'un téléchargement se produise lorsque votre projet est généré via gradlew, ajoutez simplement le zip de distribution Gradle à votre contrôle de version à l'emplacement spécifié par la configuration de votre wrapper. Une URL relative est prise en charge - vous pouvez spécifier un fichier de distribution par rapport à l'emplacement du fichier gradle-wrapper.properties.

Alors, je l' ai changé distributionUrl propriété gradle-wrapper.propertiespour

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

Ensuite, j'ai fait une copie de gradle-1.11-bin.zipin gradle/wrapper/.

Ensuite, ./gradlew buildtéléchargé une copie locale de zip et construit le projet.


9
Cela manque un point principal du wrapper, à savoir que Gradle est téléchargé et installé automatiquement pour tous les utilisateurs de build. Si vous préférez utiliser une installation locale, placez-la sur votre PATH et invoquez gradleplutôt que gradlew.
Peter Niederwieser

1
@PeterNiederwieser Oui, vous avez raison. J'ai configuré PATH mais je voulais essayer le wrapper car il est recommandé mais je ne voulais pas télécharger à nouveau le zip de gradle. De plus, je suis nouveau dans le classement.
TheKojuEffect

32
C'est un gros problème si vous devez envoyer un logiciel à quelqu'un qui n'a pas accès à Internet. Oui, c'est quelque chose qui arrive vraiment; il y a des ordinateurs qui ne sont pas connectés à Internet.
Chris Jones

3
La vérité est que je ne peux jamais télécharger gradle en ternimal, trop lent
Shaw

3
Ou un jour comme aujourd'hui où le réseau de bureau est très lent, c'est un bon hack pour continuer à avancer. ... il suffit de se rappeler de revenir en arrière une fois que les vitesses du réseau sont à nouveau normales. Aussi une bonne astuce si vous avez mesuré la bande passante, je suppose.
révérend

41

Modifiez le gradle / gradle-wrapper.properties

Les fenêtres:

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

linux:

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

2
Habituellement, j'utilise la version Windows d'Android Studio mais parfois j'ouvre mes projets dans un système d'exploitation Linux. Est-il possible de définir distributionUrlde telle manière que le package ZIP Gradle soit accessible sur les deux OS sans changer de distributionUrlvaleur?
ir-tech

1
@ ir-tech, vous pouvez utiliser un chemin relatif, comme file \: ///../lib/gradle-2.2.1-all.zip
AaA

// N'utilisez pas Android 8 car il continuera à télécharger la distribution de qualité Utilisez la plate-forme cordova ionique de qualité 7 ajouter android@8.0.0 // Cela exécutera la plate-forme ionique cordova ajouter android@~7.1.1 --save Puis exécutez ci-dessous et cette fois il devrait réussir (a fonctionné pour moi) ionic cordova build android
Anand_5050

15

Faites simplement glisser le fichier de gradle téléchargé dans la barre d'adresse de votre navigateur, puis copiez l'adresse de la barre d'adresse et modifiez gradle / wrapper / gradle-wrapper.properties comme suit:

distributionUrl=ADDRESS THAT COPY FROM YOUR BROWSER

exemple:

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

ou vous pouvez copier le fichier gradle.zip dans le dossier du wrapper puis utiliser le chemin relatif:

distributionUrl=gradle.zip

Ca ne fonctionne pas. distributionUrl obtenir une correction automatique sur https \: //services.gradle.org/distributions/gradle-4.10.3-all.zip sur ionic cordova build android
Anand_5050

8

C'est ce que j'ai fait pour éviter d'éditer tous les wrappers de gradle pour les projets actuels et futurs.

  • Localisez votre gradle-wrapper.propertiesdans votre dossier de projet (par exemple ./gradle/wrapper/gradle-wrapper.properties)
  • ouvrez le fichier avec un éditeur de texte comme Sublime Text pour localiser la distributionUrlligne (par exemple.distributionUrl=http\://services.gradle.org/distributions/gradle-2.10-bin.zip

L'archive binaire gradle nécessaire est gradle-2.10-bin.zip. Une autre version gradle-2.10-all.zipcomprend tout, y compris le code source et la documentation.

Veuillez noter que chaque projet est livré avec différentes versions de distributions gradle et que vous pouvez changer la version pour celle que vous avez ( gradle-x.xx-XXX.zip) qui inclut le binaire. (par exemple gradle-2.11-bin.zip| gradle-2.11-all.zip).

Exécutez gradlew.batsur window ou gradlesous linux pour démarrer le wrapper pour générer le projet.

Il va commencer à télécharger le gradle-2.10-bin.zipà .gradle\wrapper\distsvotre répertoire personnel (par exemple. C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-bin). Ce téléchargement se produit une seule fois pour chaque version de gradle spécifiée.

Si vous avez déjà téléchargé l'archive avant de pouvoir terminer le téléchargement en utilisant Ctrl+C

Accédez à l'emplacement de téléchargement de gradle, C:\Users\Sojimaxi\.gradle\wrapper\dists\gradle-2.10-all\78v82fsf226usgvgh7q2ptcvifcopiez votre propre copie de gradle-2.10-bin.zipdans ce répertoire, puis supprimez-le gradle-2.10-all.zip.partdans ce répertoire.

C'est tout. Revenez au répertoire de votre projet pour l'exécuter gradlew.batet il utilisera votre copie locale au lieu d'en télécharger une nouvelle.


checkout réponse de @ wcc526, cela fonctionne bien et plus facile à mettre en œuvre.
Banee Ishaque K

4

Cette solution n'a pas fonctionné pour moi, mais aidez-moi à trouver le bon chemin, donc si vous souhaitez installer gradle hors ligne, procédez comme suit:

1- dans votre projet sous le répertoire gradle, ouvrez ce fichier (gradle-wrapper.properties)

2- à la dernière ligne, vous trouverez la version gradle, téléchargez cette version ou copiez le fichier depuis un autre PC

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

Le lien de téléchargement sera comme ceci: http://services.gradle.org/distributions/gradle-3.3-bin.zip

3- ouvrez cet emplacement C: \ Users \ userName.gradle \ wrapper \ dists \ gradle-3.3-all et assurez-vous qu'il n'y a qu'un seul dossier (le nom n'a pas d'importance, il est différent sur les appareils) s'il y a d'autres dossiers supprimez tous les et appuyez sur gradle sync sur android studio qui générera un autre dossier automatique avec un nom aléatoire.

4- ouvrez ce dossier et assurez-vous qu'il ne contient que les deux derniers fichiers de la capture d'écran.

5- Déplacez le fichier zip que vous avez téléchargé dans ce dossier

6- Appuyez à nouveau sur le gradle de synchronisation sur Android Studio, supposons que le gradle fonctionnera correctement.

entrez la description de l'image ici


2

J'ai trouvé un autre moyen le plus simple de le faire, juste de démarrer mon serveur XAMPP, puis de créer un dossier à l' gradleintérieur htdocs. J'ai ajouté le fichier zippé gradle-4.4-all.zipdans ce dossier. Changement de l'URL de distribution en distributionUrl=http\://localhost/gradle/gradle-4.4-all.zip J'ai redémarré Android et la synchronisation s'est terminée sans aucun problème.


0

Je télécharge sur

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

à l'intérieur d'Eclipse, je déclare: entrez la description de l'image ici


Ensuite, je crée un nouveau projet Gradle (avec wrapper) très rapidement, pas besoin de téléchargement. (Facile plus que cette solution )


oui, c'est rapide. car contrairement aux autres réponses, il utilise le gradle disponible dans le système que le téléchargement d'une distribution gradle via http ou le protocole de fichier, la décompression et son exécution.
Banee Ishaque K

Dans mon cas, tout d'abord je géos avec la méthode de @edward anderson. puis basculé vers la méthode de wcc526 (c'est une modification de la méthode de TheKojuEffect), enfin vers cette méthode.
Banee Ishaque K

Mais maintenant, j'ai un problème avec cette méthode. J'utilise gradle-4.0-rc-3 sur mon système. mais cette version ne fonctionne pas le dernier studio Android (je pense que la dernière version est 3.0-alpha6, mais j'ai 3.0-alpha5) - il y a toujours des erreurs par la dernière version de gradle prise en charge est gradle-4.0-milestone-1, votre version est 4.0- rc-3. Je dois rétrograder mon système gradle à 4.0-milestone-1 ou toujours utiliser le wrapper gradle avec les projets de studio Android. existe-t-il une solution de contournement pour ce problème?
Banee Ishaque K

Faire fonctionner gradle dans votre IDE mais pas dans la ligne de commande gradle est un excellent moyen de ne pas pouvoir utiliser ou faire confiance à votre outil de construction pour faire quoi que ce soit. Vous ne devez essayer de faire fonctionner l'EDI qu'APRÈS avoir vérifié que la génération de la ligne de commande a réussi. Faire l'inverse est un excellent moyen de perdre des heures et des jours de votre vie à essayer de comprendre pourquoi les choses se cassent au hasard et différemment sur la vôtre et celle de tout le monde ...
Ajax

0

créer un serveur local pour simuler le téléchargement https (peut-être un peu complexe), mais cela fonctionne
1. installez tomcat puis décompressez et exécutezE:\apache-tomcat-8.5.4\bin\startup.bat

2. mettre gradle-2.14.1-all.zipàE:\apache-tomcat-8.5.4\webapps\ROOT\distributions

3.Modifiez l'URL comme celle-ci distributionUrl=http\://localhost:8080/distributions/gradle-2.14.1-all.zip
maintenant, exécutez comme d'habitude


checkout réponse de @ wcc526, cela fonctionne bien et plus facile à mettre en œuvre.
Banee Ishaque K

0

copiez votre chemin où vous mettez le fichier gradle-5.0-rc-5-bin.zip exemple: chemin C: / My doc / tools

si vous avez des espaces dans votre chemin, changez-le avec% 20

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

et exécutez la commande:

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

0

// N'utilisez pas Android 8 car il continuera à télécharger la distribution de qualité.

plate-forme ionique cordova ajouter android@8.0.0

// Cela fonctionnera

plate-forme ionique cordova ajouter android@~7.1.1 --save

Ensuite, exécutez ci-dessous et cette fois, cela devrait réussir (a fonctionné pour moi)

ionique cordova build android

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.