web-dev-qa-db-fra.com

Avertissement du plugin Maven Assembly "Le descripteur d'assembly contient une référence relative à la racine du système de fichiers"

À 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>
42
Roman Nikitchenko

La solution de travail consiste à spécifier le outputDirectory vide:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory></outputDirectory>
    </fileSet>
</fileSets>
60
Torsten

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>
34
patforna

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>
3
Barett