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.7. Gestion du répertoire racine de l'assembly

    Maintenant que nous avons parcouru les principales fonctionnalités du descripteur d'assembly, nous pouvons clôturer les discussions sur le contenu de ce descripteur et terminer avec quelque chose de plus léger : le nommage du répertoire racine et la manipulation des répertoires de site.

    Il est souvent important de pouvoir définir le nom du répertoire racine de votre assembly, ou, a minima, de savoir où il se trouve. Deux options de configurations sont disponibles dans le descripteur d'assembly pour vous permettre de gérer le répertoire racine de vos archives : includeBaseDirectory et baseDirectory. Dans le cas de fichier jar executable, vous n'avez pas besoin de répertoire racine. Pour cela, il vous suffit d'ajouter la balise includeBaseDirectory et de la mettre à false (sa valeur par défaut est true). Ainsi, vous obtiendrez une archive, qui une fois dépaquetée, peut contenir plusieurs répertoires. Ce type d'archive, avec plusieurs répertoires à la racine, est considéré comme une mauvaise pratique pour les archives que vous devez dépaqueter avant de pouvoir les utiliser. Cependant, dans le cas d'une archive à utiliser telle quelle, comme un jar exécutable, cela est acceptable.

    Dans les autres cas, vous voudrez garantir le nom du répertoire racine de votre archive quelque soient les informations contenues dans votre POM (comme la version par exemple). Par défaut, la balise baseDirectory a pour valeur ${project.artifactId}-${project.version}. Il est aisé de changer cette valeur en combinant chaines de caractères et expressions interpolées à partir du POM, comme par exemple : ${project.groupId}-${project.artifactId}. Cette fonctionnalité peut s'avèrer très pratique pour les équipes de documentation (tout le monde en a, n'est-ce pas ?).

    Continuons avec la présentation d'un autre flag de configuration : includeSiteDirectory. Par défaut, celui-ci a pour valeur false. Si le build de votre projet construit le répertoire racine pour un site en utilisant le cycle de vie ou les goals du plugin Maven Site, le site ainsi produit peut être inclus à l'assembly en positionnant ce flag à true. Cependant, celle fonctionnalité est un peu limitée car on se contente d'inclure le répertoire outputDirectory de la section reporting du POM courant (par défaut, target/site) sans prendre en considération les répertoires des éventuels autres modules. Utilisez cette option si vous le désirez, mais vous pouvez obtenir le même résultat en utilisant un fileSet ou un moduleSet. Il s'agit ici encore d'un autre exemple de configuration legacy supportée par le plugin Assembly pour assurer la rétrocompatibilité. Vos besoins peuvent évoluer, si vous désirer inclure un site provenant de plusieurs modules, privilégiez l'utilisation des fileSet ou des moduleSet plutôt que d'activer le flag includeSiteDirectory.