Maven shade插件将dependency-reduced-pom.xml添加到基目录

DD.*_*DD. 55 java maven maven-shade-plugin

maven shade插件正在创建一个名为dependency-reduced-pom.xml的文件,还有artifactname-shaded.jar并将它们放在基本目录中.

这是一个错误吗?应该在目标目录中.任何解决方法?

xve*_*ges 61

您可以通过设置createDependencyReducedPom为false 来避免创建它.

例如

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>${maven-shade-plugin.version}</version>
    <configuration>
        <createDependencyReducedPom>false</createDependencyReducedPom>
    </configuration>
    ....
    ....
</plugin>
Run Code Online (Sandbox Code Playgroud)

从apache中查看更多详细信息

在此输入图像描述

  • 如果你关闭它,那么你构建的东西仍然会将所有合并的依赖项列为依赖项. (14认同)

Zol*_*tán 19

根据bmargulies的回答和他对Xv的评论.我的回答是,我决定配置要减少依赖性的POM target/,这在我的VCS中已被忽略.

为此,我只是将dependencyReducedPomLocation元素添加到configuration插件的元素中,即

<configuration>
  <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
  (...)
</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 从插件文档"在哪里放置依赖关系减少pom.注意:使用$ {basedir}以外的目录为此参数设置值"将改变$ {basedir}的值,以用于所有执行后的执行.阴影执行.这通常不是你想要的.这被认为是这个插件的一个开放问题." (3认同)

bma*_*ies 8

请参阅https://issues.apache.org/jira/browse/MSHADE-121,以及https://issues.apache.org/jira/browse/MSHADE-124.

有一个选项可以将drp移动到其他地方,但你可能不喜欢这种后果.

你错了 - 阴影罐,它总是在目标/最终除非你移动到其他地方.

  • 如果其中有相对路径名,则它们将不起作用@Gili (3认同)
  • 你能解释一下我们应该用这个生成的pom做什么吗? (2认同)
  • "你可能不喜欢后果"是什么意思?有什么负面后果? (2认同)