gradle
Gradle Wrapper
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:
- Exécuter:
gradle wrapper [--gradle-version 2.0]
Où --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.
- 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:
- Vérifiez si la version du dégradé utilisée par le wrapper est déjà dans ~ / .gradle / wrapper / dists
- 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.