Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    3.5.4. Les dépôts Maven

    Lors de sa première exécution, vous allez vous apercevoir que Maven télécharge un grand nombre de fichiers depuis un dépôt Maven distant. Si vous exécutez Maven pour la première fois pour le projet simple, la première chose qu'il va faire est de télécharger la dernière version du plugin Resources lorsqu'il va déclencher le goal resources:resource. Avec Maven, artefacts et plugins sont téléchargés depuis des dépôts distants au moment où on en a besoin. Une des raisons pour lesquelles Maven est si léger à télécharger (1.5 MiB) est que cette version initiale ne vient qu'avec très peu de plugins. Maven est livré avec le strict minimum et récupère de dépôts distants ce dont il a besoin quand il en a besoin. Maven est livré avec l'emplacement d'un dépôt distant par défaut (http://repo1.maven.org/maven2) qu'il utilise pour télécharger les principaux plugins et les dépendances Maven.

    Souvent vous aurez des projets qui dépendent de bibliothèques propriétaires ou qui ne sont pas disponibles publiquement. Dans ce cas vous devrez installer votre propre dépôt au sein du réseau de votre organisation, ou télécharger et installer ces dépendances manuellement. Les dépôts distants par défaut peuvent être remplacés ou complétés par des références à des dépôts Maven personnalisés gérés par votre organisation. Il existe de nombreux produits sur le marché pour permettre à des organisations de gérer et maintenir des miroirs des dépôts Maven publics.

    Quelles sont les caractéristiques d'un dépôt qui en font un dépôt Maven ? Un dépôt Maven est un ensemble d'artefacts de projet rangés selon une structure de répertoires correspondant aux coordonnées Maven. Vous pouvez voir cette organisation en ouvrant un navigateur internet et en parcourant le dépôt central de Maven sur http://repo1.maven.org/maven2/. Vous verrez qu'un artefact ayant pour coordonnées org.apache.commons:commons-email:1.1 se retrouve dans le répertoire /org/apache/commons/commons-email/1.1/ dans le fichier qui s'appelle commons-email-1.1.jar. Le comportement standard pour un dépôt Maven est de ranger un artefact sous le répertoire racine du dépôt dans un répertoire respectant le format suivant.

    /<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>

    Maven télécharge artefacts et plugins depuis un dépôt distant et les enregistre dans le dépôt Maven local de votre machine. Une fois que Maven a téléchargé un artefact depuis un dépôt distant, il n'a plus besoin de le télécharger à nouveau. En effet, Maven cherchera toujours dans le dépôt local avant d'aller chercher ailleurs. Sur Windows XP, votre dépôt local se trouvera probablement dans C:\Documents and Settings\USERNAME\.m2\repository et sur Windows Vista, il se trouve dans C:\Users\USERNAME\.m2\repository. Sur les systèmes Unix, votre dépôt local Maven se trouve dans ~/.m2/repository. Quand vous construisez un projet comme celui de la section précédente, la phase install exécute un goal qui installe les artefacts de votre projet dans votre dépôt Maven local.

    Dans votre dépôt local, vous devriez voir l'artefact créé par notre projet simple. Si vous exécutez la commande mvn install, Maven installera l'artefact de notre projet dans votre dépôt local. Essayez-le.

    $mvn install
    ...
    [INFO] [install:install]
    [INFO] Installing .../simple-1.0-SNAPSHOT.jar to \
           ~/.m2/repository/com/sonatype/maven/simple/1.0-SNAPSHOT/ \
           simple-1.0-SNAPSHOT.jar

    Comme le montrent les traces de cette commande, Maven a installé le fichier JAR de notre projet dans notre dépôt Maven local. Maven utilise le dépôt local pour partager les dépendances entre projets locaux. Si vous développez deux projets — projet A et projet B — où le projet B dépend de l'artefact produit par le projet A. Maven récupérera l'artefact du projet A depuis votre dépôt local quand il construira le projet B. Les dépôts Maven sont à la fois un cache local des artefacts téléchargés depuis un dépôt distant et un mécanisme qui permet à vos projets de dépendre les uns des autres.