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>
36
demandé sur Roman Nikitchenko 2015-02-13 16:11:31

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>
50
répondu Torsten 2015-02-13 18:24:17

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>
26
répondu patforna 2016-04-29 09:48:32

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>
3
répondu Barett 2017-01-20 01:24:15