Recherche…


Gradle Wrapper et Git

Comme nous l'avons vu dans l'introduction, la fonctionnalité d'encapsulation progressive fonctionne car un fichier JAR est téléchargé dans le projet pour être utilisé lors de l' gradlew commande gradlew . Toutefois, cela risque de ne pas être gradlew et après la prochaine gradlew du projet, gradlew ne pourra pas s'exécuter avec l'erreur:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

Ce sera parce que votre fichier .gitignore inclura probablement *jar pour les projets Java. Lors de l'initialisation de l'encapsuleur, il est gradle/wrapper/gradle-wrapper.jar dans le fichier gradle/wrapper/gradle-wrapper.jar . Vous devez donc l'ajouter à l'index git et le valider. Faites-le avec:

git add -f gradle/wrapper/gradle-wrapper.jar
git ci

Avec le -f pour le forcer.

Gradle Wrapper introduction

Gradle a la capacité d'ajouter un wrapper aux projets. Ce wrapper réduit le besoin pour tous les utilisateurs ou les systèmes d'intégration continue d'installer Gradle. Il empêche également les problèmes de version où il existe une incompatibilité entre la version utilisée par le projet et celle installée par les utilisateurs. Cela se fait en installant une version de gradle localement dans le projet.

Les utilisateurs du projet exécutent simplement:

> ./gradlew <task> # on *Nix or MacOSX
> gradlew <task>   # on Windows

Pour configurer un projet afin d'utiliser un wrapper, les développeurs:

  1. Exécuter:
gradle wrapper [--gradle-version 2.0]

--gradle-version X est facultatif et s'il n'est pas fourni (ou la tâche wrapper n'est pas incluse, comme indiqué ci-dessous), la version utilisée est la version de gradle utilisée.

  1. Pour forcer le projet à utiliser une version spécifique, ajoutez ce qui suit à build.gradle :
task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

Lorsque la commande gradle wrapper est exécutée, elle crée les fichiers:

the_project/
  gradlew
  gradlew.bat
  gradle/wrapper/
    gradle-wrapper.jar
    gradle-wrapper.properties

La documentation officielle sur cette fonctionnalité est à https://docs.gradle.org/current/userguide/gradle_wrapper.html .

Utilisez Gradle dans la Gradle Wrapper

Si vous souhaitez conserver la copie locale de Gradle et laisser le wrapper l'utiliser dans les builds, vous pouvez définir la distributionUrl pointant vers votre copie sur la tâche wrapper :

task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
    distributionUrl = "http\://server/dadada/gradle-${gradleVersion}-bin.zip"
}

Après l'exécution de gradle wrapper , le script shell gradlew est créé et le gradle/wrapper/gradle-wrapper.properties est configuré pour utiliser l'URL fournie pour télécharger le fichier Gradle.

Utiliser le Gradle Wrapper derrière un proxy

La première fois qu'un utilisateur exécute d'un projet gradlew , il faut se rendre compte qu'il fera deux éléments clés:

  1. Vérifiez si la version du dégradé utilisée par le wrapper est déjà dans ~ / .gradle / wrapper / dists
  2. Sinon, téléchargez les archives de la version depuis Internet

Si vous vous trouvez dans un environnement qui nécessite que tout le trafic externe passe par un proxy, la deuxième étape échoue (à moins que ce ne soit un environnement proxy transparent). Par conséquent, vous devez vous assurer que les paramètres du proxy JVM sont définis.

Par exemple, si vous avez une configuration proxy de base sans authentification, définissez simplement la variable d'environnement JAVA_OPTS ou GRADLE_OPTS avec:

-Dhttps.proxyPort=<proxy_port> -Dhttps.proxyHost=<hostname>

Ainsi, un exemple complet sur Windows serait:

set JAVA_OPTS=-Dhttps.proxyPort=8080 -Dhttps.proxyHost=myproxy.mycompany.com

Si toutefois votre environnement nécessite également une authentification, vous souhaiterez également examiner vos autres options à l' adresse https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties. html .

REMARQUE: Cette configuration de proxy s'ajoute à toute configuration de proxy pour l'accès à votre référentiel de dépendances.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow