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


    Chapitre 8. Maven Assemblies

    8.1. Introduction
    8.2. Les bases du plugin Assembly
    8.2.1. Les descripteurs Assembly prédéfinis
    8.2.2. Construire un Assembly
    8.2.3. Utilisation des assemblies comme dépendances
    8.2.4. Construction d'assemblies à partir d'assemblies dépendances
    8.3. Vue d'ensemble du descripteur d'assembly
    8.4. Le descripteur d'assembly
    8.4.1. Référence de propriété dans un descripteur d'assembly
    8.4.2. Informations obligatoires pour un assembly
    8.5. Choisir les contenus d'un assembly
    8.5.1. Section files
    8.5.2. Section fileSets
    8.5.3. Patterns d'exclusion par défaut pour la balise fileSets
    8.5.4. Section dependencySets
    8.5.4.1. Configurer l'emplacement des dépendances
    8.5.4.2. Interpolation de propriétés pour l'emplacement des dépendances
    8.5.4.3. Inclusion et exclusion de dépendance par scope
    8.5.4.4. Configuration fine : inclusion et exclusion de dépendances
    8.5.4.5. Dépendances transitives, pièces jointes et artefacts de projet
    8.5.4.6. Options avancées de dépaquetage
    8.5.4.7. Résumé des ensembles de dépendances
    8.5.5. La balise moduleSets
    8.5.5.1. Sélection des modules
    8.5.5.2. Balise sources
    8.5.5.3. Interpolation de l'outputDirectoryMapping dans les moduleSets
    8.5.5.4. Balise binaries
    8.5.5.5. moduleSets, POMs parents et balise binaries
    8.5.6. Balise repositories
    8.5.7. Gestion du répertoire racine de l'assembly
    8.5.8. componentDescriptors et containerDescriptorHandlers
    8.6. Best Practices
    8.6.1. Descripteurs d'assembly standards et réutilisables
    8.6.2. Assembly de distribution (agrégation)
    8.7. En résumé

    8.1. Introduction

    Maven fournit des plugins qui sont utilisés pour créer des archives dans les formats les plus courants, et qui seront, pour la plupart, utilisées comme dépendances d'autres projets. Par exemple, nous avons les plugins JAR, WAR, EJB et EAR. Comme nous l'avons déjà vu dans le Chapitre 4, Cycle de vie du build ces plugins correspondent à différents formats de packaging de projet, chacun avec son processus de build légèrement différent. Même si Maven supporte les différents formats standards de packaging grâce à ses plugins et des cycles de vie personnalisés, il va arriver un moment où vous aurez besoin de créer une archive ou un répertoire avec une structure qui lui est propre. Ces archives personnalisées sont appelées Assemblies Maven.

    Il existe de nombreuses raisons pour lesquelles vous voudrez construire ces archives personnalisées pour votre projet. La plus courante est peut-être la distribution du projet. Ce mot 'distribution' peut signifier plusieurs choses selon la personne qui l'emploie (ou selon le projet), tout cela dépendant de la manière dont le projet doit être utilisé. Essentiellement, il s'agit d'archives qui fournissent un moyen simple pour les utilisateurs d'installer ou d'utiliser le produit du projet. Dans certains cas, cela peut signifier fournir un serveur d'applications comme Jetty avec l'application Web. Dans d'autres, il s'agit de fournir un paquet contenant le code source et la documentation de l'API avec le binaire compilé comme, par exemple, un fichier jar. C'est souvent lorsque vous êtes en train de construire la version distribuable d'un produit que les assemblies vont pouvoir vous aider. Par exemple, les produits comme Nexus, dont on parle plus en détail dans Repository Management with Nexus, sont le résultat de plusieurs énormes projets Maven multimodules, et c'est un assembly Maven qui a construit l'archive finale que vous téléchargez depuis Sonatype.

    Dans la plupart des cas, le plugin Assembly est idéalement taillé pour construire des packages distribuables de projets. Cependant, les assemblies ne sont pas forcément des archives distribuables ; les assemblies doivent apporter aux utilisateurs de Maven la flexibilité dont ils ont besoin pour produire des archives personnalisées de tout type. En bref, les assemblies doivent combler les trous laissés par les formats standards d'archives fournis par les types de packaging des projets. Bien sûr, vous pourriez écrire un plugin Maven complet pour produire votre propre format d'archive, avec une nouvelle association au cycle de vie et la configuration de gestion d'artefact pour indiquer à Maven comment le déployer. Mais le plugin Assembly rend tout cela superflu dans la plupart des cas en vous donnant les moyens de construire votre archive selon votre propre recette sans avoir à écrire une ligne de code Maven.