Maven程序集插件警告"程序集描述符包含文件系统 - 根相对引用"

Rom*_*nko 44 cross-platform maven-3 maven maven-assembly-plugin

从一些程序集插件版本maven build开始发出以下警告:

[警告]程序集描述符包含一个filesystem-root相对引用,它不是跨平台兼容的/

是否有任何推荐的即用型解决方案?直接谷歌搜索为我提供了大量的垃圾,没有真正的帮助.重新检查Maven程序集插件帮助没有为我提供答案,也许其他人有更好的搜索技能,可以提供帮助.

UPDATE

是的,这可能是因为类似于Linux,outputDirectory但我应该如何重写它以便携带?查看程序集插件文档,但未找到任何可移植性指南.

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>/</outputDirectory>
    </fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)

Tor*_*ten 62

工作解决方案是指定空outputDirectory:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory></outputDirectory>
    </fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)

  • 如果你想在这里指定一个目录,那么这就是 - 这就是为什么这个参数在这里.只需避免以"/"开头的绝对路径. (3认同)
  • 将它留空是不可取的,如果需要设置应该怎么做? (2认同)
  • 或者自动关闭`<outputDirectory />` (2认同)
  • 另一种选择:使用“.”代替“/”,即:“&lt;outputDirectory&gt;.&lt;/outputDirectory&gt;”。 (2认同)

小智 35

使用空outputDirectory元素有效,但如果有人认为可以安全删除,我不会感到惊讶.

因此,为了更明确,您还可以通过编写来避免警告:

<outputDirectory>${file.separator}</outputDirectory>
Run Code Online (Sandbox Code Playgroud)

  • @vivekmore该物业由maven提供,DOES适用于nix和windows (3认同)

Bar*_*ett 5

请注意,除了以外,这可能还会在其他位置发生/。上面的答案是正确的,但不涵盖这种情况。

在您的assembly.xml中查找如下所示的内容:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>/lib</outputDirectory>         <!-- <<< look for this -->
    </fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)

并更改为:

<fileSets>
    <fileSet>
        <directory>${basedir}/src/main/resources</directory>
        <outputDirectory>lib</outputDirectory>
    </fileSet>
</fileSets>
Run Code Online (Sandbox Code Playgroud)