Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven assembly plugin warning "The assembly descriptor contains a filesystem-root relative reference"

Starting from some assembly plugin version maven builds issue the following warning:

[WARNING] The assembly descriptor contains a filesystem-root relative reference,which is not cross platform compatible /

Is there any recommended ready-to-use solution for this? Direct googling provided me with lot of trash and no real help. Re-check of Maven assembly plugin help did not provide answer for me, maybe someone else has better search skill and can help.

UPDATE

Yes, this is probably because of Linux-like outputDirectory but how should I rewrite this to be portable? Looked at assembly plugin documentation and not found any portability guide.

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>/</outputDirectory>
    </fileSet>
</fileSets>
like image 373
Roman Nikitchenko Avatar asked Feb 13 '15 13:02

Roman Nikitchenko


3 Answers

The working solution is to specify the empty outputDirectory:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory></outputDirectory>
    </fileSet>
</fileSets>
like image 193
Torsten Avatar answered Oct 12 '22 21:10

Torsten


Using an empty outputDirectory element works, but I wouldn't be surprised if somebody assumed it could be safely deleted.

So, to be more explicit, you could also avoid the warning by writing:

<outputDirectory>${file.separator}</outputDirectory>
like image 24
patforna Avatar answered Oct 12 '22 19:10

patforna


Note that this can happen at other locations besides just /. The above answers are correct, but don't cover this case.

Look for something like this in your assembly.xml:

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

and change to this:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>lib</outputDirectory>
    </fileSet>
</fileSets>
like image 8
Barett Avatar answered Oct 12 '22 19:10

Barett