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


    14.5. Choisir les contenus d'un assembly

    En théorie, l'id et le format sont les seuls éléments obligatoires pour un descripteur d'assembly valide ; cependant la plupart des composants archiveurs d'assembly échoueront s'ils n'ont pas au moins un fichier à inclure dans l'archive finale. La définition des fichiers à inclure dans l'assembly se fait dans les cinq sections principales du descripteur d'assembly : files, fileSets, dependencySets, repositories et moduleSets. Pour explorer ces sections le plus efficacement possible, nous allons commencer par étudier la plus simple : files. Puis nous traiterons les deux sections les plus utilisées fileSets et dependencySets. Une fois que vous avez compris le fonctionnement de fileSets et de dependencySets, il est beaucoup plus facile de comprendre comment fonctionnent repositories et moduleSets.

    14.5.1. Section files

    La section files est la partie la plus simple du descripteur d'assembly, elle a été conçue pour les fichiers qui ont une position relative au répertoire du projet. Avec cette section vous avez un total contrôle sur les fichiers qui seront inclus dans votre assembly, quel seront leurs noms et où ils se positionneront dans l'archive.

    Exemple 14.6. Ajout d'un fichier JAR dans un assembly avec la balise files

    <assembly>
      ...
      <files>
        <file>
          <source>target/my-app-1.0.jar</source>
          <outputDirectory>lib</outputDirectory>
          <destName>my-app.jar</destName>
          <fileMode>0644</fileMode>
        </file>
      </files>
      ...
    </assembly>

    Supposons que vous construisiez le projet my-app dans sa version 1.0, la configuration de l'Exemple 14.6, « Ajout d'un fichier JAR dans un assembly avec la balise files », permet d'inclure le JAR de votre projet dans le répertoire lib/ de l'assembly, en supprimant le numéro de version pour obtenir au final un fichier renommé en my-app.jar. Ensuite, il faut rendre ce JAR lisible par tout le monde et éditable son propriétaire (c'est ce que que représente le mode 0644 pour les fichiers avec le format sur quatre chiffres des permissions Unix). Pour plus d'informations sur le format de la valeur de la balise fileMode, consultez l'explication de Wikipédia sur le système octal de représentation des droits.

    Vous pouvez construire un assembly très complexe avec ces balises file, si vous connaissez la liste exhaustive des fichiers à inclure. Même si vous ne connaissez pas cette liste au lancement du build, vous pouvez très facilement utiliser un plugin Maven personnalisé pour produire ce descripteur d'assembly avec des références comme celui ci-dessus. Si la section files vous permet un contrôle très fin des permissions, de la position et du nom de chaque fichier dans l'archive assembly, écrire une balise file pour chaque fichier est une tâche pénible. La plupart du temps vous allez travailler sur des groupes de fichiers et de dépendances grâce à la balise fileSets. Les quatre sections suivantes sont conçues pour vous permettre de sélectionner des listes de fichiers correspondant à des critères particuliers.