由Maven shade plugin 自动创建的dependency-reduced-pom.xml
是否在依赖于uberjar(而非普通pom.xml
)的项目中使用?
在阅读了一些与dependency-reduced-pom.xml相关的问题并且没有找到答案后问这个问题:
Maven shade plugin adding dependency-reduced-pom.xml to base directory
What is the purpose of dependency-reduced-pom.xml generated by the shade plugin?
What is `dependency-reduced-pom.xml` file which created when calling maven package command?
答案 0 :(得分:22)
dependency-reduced-pom.xml
在构建时生成到项目的${basedir}
。此文件是一个临时文件,仅用于打包到着色jar中。引用createDependencyReducedPom
属性的文档:
标记是否为着色工件生成简化的POM。如果设置为
true
,则将从生成的POM的<dependencies>
部分中删除已包含在uber JAR中的依赖项。缩减的POM将命名为dependency-reduced-pom.xml
,并且存储在与着色工件相同的目录中。除非您还指定dependencyReducedPomLocation
,否则插件会在项目基础上创建名为dependency-reduced-pom.xml
的临时文件。
要明确,maven-shade-plugin
运行后
dependency-reduced-pom.xml
的临时文件将在根文件夹(this is considered an open issue with this plugin)内生成; META-INF
目录中包含您的初始POM,而不是缩小的POM(这不是很重要但更好地提及它 - 有一个关于此的问题自动关闭:{{3 }});