À partir de certaines versions du plug-in Assembly, les builds maven émettent l'avertissement suivant:
[AVERTISSEMENT] Le descripteur d'assemblage contient une référence relative à la racine du système de fichiers, qui n'est pas compatible avec plusieurs plates-formes /
Existe-t-il une solution prête à l'emploi recommandée pour cela? La recherche directe sur Google m'a fourni beaucoup de déchets et aucune aide réelle. Une nouvelle vérification de l'aide du plugin Maven Assembly n'a pas fourni de réponse pour moi, peut-être que quelqu'un d'autre a de meilleures compétences en recherche et peut vous aider.
MISE À JOUR
Oui, c'est probablement à cause de Linux de type outputDirectory
mais comment dois-je le réécrire pour qu'il soit portable? J'ai regardé la documentation du plugin Assembly et je n'ai trouvé aucun guide de portabilité.
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
La solution de travail consiste à spécifier le outputDirectory
vide:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory></outputDirectory>
</fileSet>
</fileSets>
L'utilisation d'un élément outputDirectory
vide fonctionne, mais je ne serais pas surpris si quelqu'un supposait qu'il pouvait être supprimé en toute sécurité.
Donc, pour être plus explicite, vous pouvez également éviter l'avertissement en écrivant:
<outputDirectory>${file.separator}</outputDirectory>
Notez que cela peut se produire à d'autres endroits que simplement /
. Les réponses ci-dessus sont correctes, mais ne couvrent pas ce cas.
Recherchez quelque chose comme ceci dans votre Assembly.xml:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>/lib</outputDirectory> <!-- <<< look for this -->
</fileSet>
</fileSets>
et passez à ceci:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>lib</outputDirectory>
</fileSet>
</fileSets>