Maven assembly plugin warning “The assembly descri

2019-02-11 10:23发布

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>

3条回答
看我几分像从前
2楼-- · 2019-02-11 10:29

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>
查看更多
劫难
3楼-- · 2019-02-11 10:35

The working solution is to specify the empty outputDirectory:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory></outputDirectory>
    </fileSet>
</fileSets>
查看更多
放我归山
4楼-- · 2019-02-11 10:47

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>
查看更多
登录 后发表回答