将 createDependencyReducedPom 设置为 false (maven-shade-plugin) 的原因是什么?
What would be a reason to set createDependencyReducedPom to false (maven-shade-plugin)?
我已经阅读了许多有关 maven-shade-plugin
的 createReducedDependencyPom
的资源:
- What is the purpose of dependency-reduced-pom.xml generated by the shade plugin?
- Maven shade plugin adding dependency-reduced-pom.xml to base directory
- https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#createDependencyReducedPom
我知道它将创建一个 pom,其中删除了阴影的依赖项,因此阴影 jar 上的下游依赖项将不会再次处理那些可从阴影 jar 访问的依赖项。
但是,我不明白在什么情况下会把默认值 (true) 更改为 false。
谁能举例说明这在什么时候有用?
虽然将 createDependencyReducedPom
设置为 true
在使用着色工件 (jar) 作为其他项目的依赖项时很有用,但我最近遇到了 运行 我的 multi -module maven 构建与超过 1 个线程并行会导致 maven-shade-plugin
进入无限循环并永远阻止构建。
禁用 dependency-reduced-pom
文件的创建对我来说是解决该问题的方法。
您不想创建 dependency-reduced-pom
的另一个原因是当正在构建的阴影 jar 是一个应用程序而不是要在其他地方使用的库时。
我已经阅读了许多有关 maven-shade-plugin
的 createReducedDependencyPom
的资源:
- What is the purpose of dependency-reduced-pom.xml generated by the shade plugin?
- Maven shade plugin adding dependency-reduced-pom.xml to base directory
- https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#createDependencyReducedPom
我知道它将创建一个 pom,其中删除了阴影的依赖项,因此阴影 jar 上的下游依赖项将不会再次处理那些可从阴影 jar 访问的依赖项。
但是,我不明白在什么情况下会把默认值 (true) 更改为 false。
谁能举例说明这在什么时候有用?
虽然将 createDependencyReducedPom
设置为 true
在使用着色工件 (jar) 作为其他项目的依赖项时很有用,但我最近遇到了 运行 我的 multi -module maven 构建与超过 1 个线程并行会导致 maven-shade-plugin
进入无限循环并永远阻止构建。
禁用 dependency-reduced-pom
文件的创建对我来说是解决该问题的方法。
您不想创建 dependency-reduced-pom
的另一个原因是当正在构建的阴影 jar 是一个应用程序而不是要在其他地方使用的库时。