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>
The working solution is to specify the empty outputDirectory
:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory></outputDirectory>
</fileSet>
</fileSets>
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>
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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With