首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从web项目中的依赖jar(使用maven)中排除包?

如何从web项目中的依赖jar(使用maven)中排除包?
EN

Stack Overflow用户
提问于 2017-02-21 12:53:28
回答 1查看 2K关注 0票数 1

在我的pom.xml中,我的依赖项低于。

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.phoenix</groupId>
    <artifactId>phoenix-server-client</artifactId>
    <version>4.7.0-HBase-1.1</version>
</dependency>

上面是关于凤凰查询服务器交互的,这个依赖项有org.apache.calite:calcite:1.6.0传递依赖。方解石-avatica依赖关系具有jackson-databind(2.1.1)的传递依赖关系.因此,jackson-databind(版本: 2.1.1)依赖项应该包含在我的项目的类路径中。但是,杰克逊数据库(版本: 2.1.1)中的所有类都包含在方解石-avatica jar中。我已经在我的pom.xml中宣布jackson-databind(版本: 2.7.2)为直接依赖项。我可以通过标签排除jackson-databind(2.1.1)。。< org.apache.phoenix菲尼克斯-服务器-客户4.7.0-HBase-1.1 com.Quickerxml./*jackson-数据库

但它并没有被排除,因为它被捆绑在方解石-阿瓦蒂卡:1.6.0罐中。有什么解决办法吗。我尝试过maven阴影插件。但都是徒劳。

EN

回答 1

Stack Overflow用户

发布于 2017-02-21 14:21:30

有不同的方法,没有一种是完美的:

  • 如果您不需要方解石-avatica jar,请排除它(使用Maven排除机制)。
  • 如果您需要一些来自方解石-avatica jar的类,而不是jackson-databind类,则更改声明依赖项的顺序。因为Java只能加载每个类一次,所以方解石-avatica jar的类可以隐藏jackson-databind的类,反之亦然。
  • 创建一个“被砍的”方解石-avatica罐子,它不包含双重类。
  • 如果你真的,真的需要两个不同版本的jackson-databind,你需要尝试用阴影插件来构建它,但这并不容易。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42367890

复制
相关文章

相似问题

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