我读过:
我得出的结论是,没有办法排除继承自父pom的特定依赖项。我使用的是maven,而父pom是不可编辑的。
所以,在将jar打包到目标jar之前,我考虑将jar本身排除在外。
My parent pom is `sdk-java-starter-parent` that comes from an internal library.
<parent>
<groupId>abc.def.xyz</groupId>
<artifactId>sdk-java-starter-parent</artifactId>
<version>6.1.0.4</version>
</parent>
该pom声明了log4-1.2.7
依赖项,我想排除它,而不是将它导入到我的项目中。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
如果我要直接从spring的组导入父pom,我可以使用spring-boot-maven-plugin
来排除它。但是因为我是从内部库导入父程序库,所以使用这个插件是没有用的,也没有可能的。
我考虑过使用maven-shader插件和其他重新打包插件,以便在jar打包之前对其进行“遮阳”:
<excludes>
<exclude>log4j-1.2.17.jar</exclude> (tried also `**/log4j-1.2.17.jar`)
</excludes>
但它也不起作用。我尝试过使用<dependencyManagement>
,但它不适合,因为我不想覆盖版本,我只想删除整个依赖项。完全排除它或移除它的罐子。
老实说,我不知道,如果可能的话,我很高兴听到一些你建议我怎么做的想法。
如果不可能,我还有其他选择吗?我如何才能避免收到那个log4j jar?
最后一个应用程序是一个由JARs.组成的码头容器。
正在使用的插件如下:
我不确定其中哪一个负责构建应用程序和jar打包。
谢谢。
发布于 2022-02-02 13:00:40
我认为您需要将排除写为<exclude>*:log4j</exclude>
。
https://stackoverflow.com/questions/70955556
复制相似问题