Avertissement du plugin d'assemblage Maven " le descripteur d'assemblage contient une référence relative au système de fichiers-racine"
À partir de certaines versions du plugin d'assemblage, Maven émet l'avertissement suivant:
[avertissement] le descripteur d'assembly contient un système de fichiers référence, qui n'est pas compatible multi-plateforme /
Existe-t-il une solution prête à l'emploi recommandée pour cela? Googling Direct m'a fourni beaucoup de déchets et aucune aide réelle. Re-check de l'aide du plugin d'assemblage Maven n'a pas fourni de réponse pour moi, peut-être que quelqu'un d'autre a une meilleure compétence de recherche et peut aider.
Mise à JOUR
Oui, c'est probablement à cause de Linux-like outputDirectory
mais comment dois-je réécrire ceci pour être portable? Regardé la documentation du plugin d'assemblage et n'a trouvé aucun guide de portabilité.
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
3 réponses
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 pourrait être supprimé en toute sécurité.
Donc, pour être plus explicite, vous pouvez également éviter l'avertissement par écrit:
<outputDirectory>${file.separator}</outputDirectory>
Notez que cela peut se produire à d'autres endroits que /
. Les réponses ci-dessus sont correctes, mais ne couvrent pas ce cas.
Recherchez quelque chose comme ceci dans votre assemblage.xml:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>/lib</outputDirectory> <!-- <<< look for this -->
</fileSet>
</fileSets>
Et changer à ceci:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>lib</outputDirectory>
</fileSet>
</fileSets>