web-dev-qa-db-ja.com

Mavenアセンブリプラグインの警告「アセンブリ記述子にファイルシステムルートの相対参照が含まれています」

一部のアセンブリプラグインバージョンから開始すると、Mavenビルドは次の警告を発行します。

[警告]アセンブリ記述子には、ファイルシステムルートの相対参照が含まれていますが、これはクロスプラットフォーム互換ではありません/

このためにすぐに使用できる推奨ソリューションはありますか?直接のグーグルは、私に多くのゴミを提供し、本当の助けはありませんでした。 Maven Assemblyプラグインのヘルプを再確認しても答えが得られませんでした。他の誰かがより良い検索スキルを持っていて、助けてくれるかもしれません。

[〜#〜] update [〜#〜]

はい、これはおそらくLinuxに似たoutputDirectoryによるものですが、これを移植可能にするにはどうすればよいですか?アセンブリプラグインのドキュメントを見て、ポータビリティガイドが見つかりませんでした。

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

実用的な解決策は、空のoutputDirectoryを指定することです。

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

空のoutputDirectory要素を使用することはできますが、誰かが安全に削除できると想定しても驚かないでしょう。

したがって、より明確にするために、次のように記述することで警告を回避することもできます。

<outputDirectory>${file.separator}</outputDirectory>
34
patforna

これは、/。上記の答えは正しいですが、この場合はカバーしません。

Assembly.xmlで次のようなものを探します。

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>/lib</outputDirectory>         <!-- <<< look for this -->
    </fileSet>
</fileSets>

そしてこれに変更します:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>lib</outputDirectory>
    </fileSet>
</fileSets>
3
Barett