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 14. Maven Assemblies

    14.1. Introduction
    14.2. Les bases du plugin Assembly
    14.2.1. Les descripteurs Assembly prédéfinis
    14.2.2. Construire un Assembly
    14.2.3. Utilisation des assemblies comme dépendances
    14.2.4. Construction d'assemblies à partir d'assemblies dépendances
    14.3. Vue d'ensemble du descripteur d'assembly
    14.4. Le descripteur d'assembly
    14.4.1. Référence de propriété dans un descripteur d'assembly
    14.4.2. Informations obligatoires pour un assembly
    14.5. Choisir les contenus d'un assembly
    14.5.1. Section files
    14.5.2. Section fileSets
    14.5.3. Patterns d'exclusion par défaut pour la balise fileSets
    14.5.4. Section dependencySets
    14.5.4.1. Configurer l'emplacement des dépendances
    14.5.4.2. Interpolation de propriétés pour l'emplacement des dépendances
    14.5.4.3. Inclusion et exclusion de dépendance par scope
    14.5.4.4. Configuration fine : inclusion et exclusion de dépendances
    14.5.4.5. Dépendances transitives, pièces jointes et artefacts de projet
    14.5.4.6. Options avancées de dépaquetage
    14.5.4.7. Résumé des ensembles de dépendances
    14.5.5. La balise moduleSets
    14.5.5.1. Sélection des modules
    14.5.5.2. Balise sources
    14.5.5.3. Interpolation de l'outputDirectoryMapping dans les moduleSets
    14.5.5.4. Balise binaries
    14.5.5.5. moduleSets, POMs parents et balise binaries
    14.5.6. Balise repositories
    14.5.7. Gestion du répertoire racine de l'assembly
    14.5.8. componentDescriptors et containerDescriptorHandlers
    14.6. Best Practices
    14.6.1. Descripteurs d'assembly standards et réutilisables
    14.6.2. Assembly de distribution (agrégation)
    14.7. En résumé

    14.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 10, 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.