Gradle Repositaires

Gradle Repositaires
Gradle recherche des dépendances externes dans les référentiels. Un référentiel Gradle est organisé à l'aide de groupe, de nom et de version. Gradle est compatible avec différents formats de référentiel comme Maven et Ivy.

Comprendre la gestion des dépendances à Gradle

Les référentiels sont utilisés dans Gradle pour la gestion des dépendances. Il y a deux composantes pour grader les dépendances: les dépendances et les publications du projet.

Lorsque vous construisez un projet sur Gradle, vous aurez probablement besoin de bibliothèques d'autres développeurs. Supposons que vous ayez besoin de la bibliothèque Apache Commons Lang pour des manipulations de chaînes spéciales. Vous en avez donc besoin dans votre chemin de classe pour que votre code fonctionne. Et l'Apache Commons Lang pourrait avoir besoin de bibliothèques supplémentaires que vous ne connaissez pas. Gradle vous permet de raconter la dépendance particulière dont votre projet a besoin et il ira au référentiel spécifié comme Maven ou Ivy et déterminer toutes les dépendances associées et télécharger les fichiers et le configurer automatiquement pour vous.

Gradle a également la capacité de publier vos artefacts. Vous pouvez décider de ce que la publication signifie pour votre cas particulier. Vous pouvez le publier localement ou le publier dans un référentiel Maven ou Ivy.

Exemple de référentiel Gradle

Supposons que nous voulons utiliser la classe StringUtils de la bibliothèque Apache Commons Lang. Créons un réalisateur comme ceci:

Bonjour le monde
| - construire.Grade
'- SRC
| - Main
'- Java
'-- Bonjour le monde
'-- Bonjour le monde.Java

Dans le Helloworld.Java, vous pouvez mettre le code suivant:

org d'importation.apache.Chambre des communes.lang3.StringUtils;
classe publique Helloworld
public static void main (String [] args)
STRING GREETRS = "Hello World!"
Système.dehors.println (salutations);
Système.dehors.println (stringutils.swapcase (salutations));

Et dans la construction.Fichier Gradle Vous pouvez mettre ce qui suit:

Appliquer le plugin: 'Java'
version = '1.0 '
Référentiels
mavencentral ()

dépendances
Groupe de compilation: «Org.apache.Commons ', nom:' Commons-Lang3 ', version:' 3.7'

pot
à partir des configurations.compiler.Collection Ziptree it

Discutons de ce qui se passe dans le script de construction ci-dessus. Il dit à Gradle de regarder dans le référentiel Maven pour la version 3 Commons-Lang3.7. Il dit également à Gradle d'emballer les dépendances dans le fichier JAR. Si vous supprimez les configurations.compiler.Collectez la ligne Ziptree it, alors vous devrez inclure les dépendances externes dans le chemin de classe lorsque vous exécutez le programme.

Maintenant, à partir du dossier racine, vous pouvez exécuter la construction avec la commande

$ gradle
Vous devriez voir des résultats comme ceci:
$ gradle
Télécharger https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7/
Commons-Lang3-3.7.pom
Télécharger https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
communes-parent-42.pom
Télécharger https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7/
Commons-Lang3-3.7.pot
Construire le succès dans 6s
2 tâches exploitables: 1 exécutée, 1 à jour

Vous pouvez exécuter la construction comme ceci:

$ java -cp build / libs / helloworld-1.0.jar helloworld
Bonjour le monde!
Bonjour le monde!

Si vous n'aviez pas inclus les dépendances dans votre construction, les classes StringUtils n'auraient pas été incluses dans votre Helloworld-1.0.dossier. Et vous auriez obtenu une erreur comme ceci:

$ java -cp build / libs / helloworld-1.0.jar helloworld
Bonjour le monde!
Exception dans le fil "Main" Java.égouter.NOCLASSDEFFOUNDERROR: ORG / APACHE / COMMONS / LANG3 /
StringUtils à Helloworld.Main (Helloworld.Java: 11)
Causé par: java.égouter.ClassNotFoundException: org.apache.Chambre des communes.lang3.Stringutiles
à Java.filet.UrlClassloadher.findClass (UrlClassloadher.Java: 381)
à Java.égouter.Chargeur de classe.LoadClass (Classloader.Java: 424)
au soleil.mission.Lanceur $ AppClassloadher.LoadClass (lanceur.Java: 331)
à Java.égouter.Chargeur de classe.LoadClass (Classloader.Java: 357)
… 1 de plus

Gradle vous permet d'emballer facilement vos dépendances dans votre package.

Conclusion

L'utilisation des fonctionnalités de référentiels et de dépendances Gradle peut simplifier votre processus de gestion des dépendances. Vous n'avez pas à garder manuellement tout.

Une étude plus approfondie:

Gradle Dependency Management pour les projets Java