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

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

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

您可以通过将createDependencyReducedPom设置为false来避免创build它。

例如

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${maven-shade-plugin.version}</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> .... .... </plugin> 

从apache查看更多细节

在这里输入图像说明

基于bmargulies的回答和他对Xv的评论 的答案,我决定configuration依赖减less的POM输出到target/ ,这已经在我的VCS中被忽略了。

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

 <configuration> <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation> (...) </configuration> 

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

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

你对这个阴影的瓶子是错误的,它总是以目标/结束,除非你把它移动到其他地方。

你可以使用旧版本的插件。 maven-shade-plugin 1.7版写入/ target。

从版本1.7.1开始,将dependency-reduced的pom.xml写入到basedir。 出于某些原因, MSHADE-124查看了问题,结果如何。 如果您尝试设置dependencyReducedPomLocation ,您可能会遇到生成该网站的问题 – 公开问题MSHADE-145 。

当它说: http ://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html上的文档是不正确的。

createDependencyReducedPom boolean – 标记是否为阴影工件生成简化的POM。 如果设置为true,则包含在uber JAR中的依赖关系将从生成的POM的部分中删除。 减less的POM将被命名为dependency-reduced-pom.xml,并存储在与着色的工件相同的目录中。 除非您还指定了dependencyReducedPomLocation,否则插件将在项目basedir中创build一个名为dependency-reduced-pom.xml的临时文件。 默认值是:true。

dependency-reduced-pom.xml 存储在与着色工件(目标目录)相同的目录中…实际上它是在基目录中生成的,而不是目标