Quand un projet prend de l'ampleur on peut vouloir en réutiliser des modules sous forme de **bibliothèques**.
<!---
- Bibliothèques
- jar
- maven central
-->
Aussi, quand le nombre de fichiers, de classes et de package augmente, il peut devenir compliqué de le compiler uniquement avec la commande `javac`.
On a besoin de le **packager** sous la forme d'un artefact réutilisable et parfois exécutable.
## Jar
- **[[Glossaire général#Jar|Jar]]** : Format d'artéfact en Java
C'est une sorte d'archive zip avec des codes et ressources Java dedans.
## Gestionnaire de dépendances
Les [[Glossaire général#Gestionnaire de dépendances|gestionnaires de dépendances]] permettent de récupérer, assembler des [[Glossaire général#Dépendance|dépendances]] (comme des [[Glossaire général#Bibliothèque|bibliothèques]] [[Glossaire général#Tierce-partie (dépendance)|tierces-parties]]).
Dans l'écosystème Java les gestionnaires de dépendance les plus utilisés sont
- [[Glossaire général#Maven|Maven]] et sa commande `mvn`
- [[Glossaire général#Gradle|Gradle]] et sa commande `gradle`
Dans ce cours, nous verrons surtout Maven.
Vous avez certainement déjà rencontré des gestionnaires de dépendances dans d'autres langages
- Composer pour PHP
- npm pour nodeJs
## Dépôt de dépendances
Les dépendances ont besoin d'être **hébergées** quelque part pour pouvoir être téléchargées.
C'est le rôle des dépôts (repositories) de dépendances.
En Java, le dépôt public le plus utilisé est Maven Central : https://central.sonatype.com/
Il fonctionne avec Maven et Gradle.
## À suivre
[[Maven]]