首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有可能排除来自java父pom的maven依赖jar?

是否有可能排除来自java父pom的maven依赖jar?
EN

Stack Overflow用户
提问于 2022-02-02 12:22:20
回答 1查看 933关注 0票数 1

我读过:

我得出的结论是,没有办法排除继承自父pom的特定依赖项。我使用的是maven,而父pom是不可编辑的。

所以,在将jar打包到目标jar之前,我考虑将jar本身排除在外。

代码语言:javascript
运行
复制
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依赖项,我想排除它,而不是将它导入到我的项目中。

代码语言:javascript
运行
复制
<dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

如果我要直接从spring的组导入父pom,我可以使用spring-boot-maven-plugin来排除它。但是因为我是从内部库导入父程序库,所以使用这个插件是没有用的,也没有可能的。

我考虑过使用maven-shader插件和其他重新打包插件,以便在jar打包之前对其进行“遮阳”:

代码语言:javascript
运行
复制
<excludes>
<exclude>log4j-1.2.17.jar</exclude> (tried also `**/log4j-1.2.17.jar`)
</excludes>

但它也不起作用。我尝试过使用<dependencyManagement>,但它不适合,因为我不想覆盖版本,我只想删除整个依赖项。完全排除它或移除它的罐子。

老实说,我不知道,如果可能的话,我很高兴听到一些你建议我怎么做的想法。

如果不可能,我还有其他选择吗?我如何才能避免收到那个log4j jar?

最后一个应用程序是一个由JARs.组成的码头容器。

正在使用的插件如下:

  • maven-jar-plugin
  • maven-surefire-plugin
  • docker-maven-plugin
  • swagger-maven-plugin

我不确定其中哪一个负责构建应用程序和jar打包。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-02-02 13:00:40

我认为您需要将排除写为<exclude>*:log4j</exclude>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70955556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档