当前位置: 首页 > 知识库问答 >
问题:

需要两个不同版本的JAR在一个Java应用程序

沈自珍
2023-03-14

我有一个Java应用程序,其中包括两个第三方JAR(Amazon Kinesis和MaxMind GeoIP2),每个JAR都使用不同版本的Jackson。两个版本的Jackson都不适用于这两个第三方罐子。

此外,我正在运行Apache的maven JAR pluging-它创建一个包含所有依赖类的uber JAR。

鉴于我不能更改第三方JAR,我不知道如何才能让每个第三方JAR调用杰克逊的适当版本JAR。

有什么想法吗?

com.fasterxml.jackson.dataformat"jackson-dataformde-cbor: 2.6.6com.fasterxml.jackson.core"jackson-data ind: 2.6.6

GeoIP2期望:com。fasterxml。杰克逊。core»杰克逊数据绑定:2.8.8.1

共有1个答案

柯浩壤
2023-03-14

使用Maven shade插件

https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html

重新安排课程。

 类似资料:
  • 问题内容: 我有一个独立使用两个依赖项的项目:BoneCP和Hibernate。但是由于SLF4J及其版本冲突,它无法正常工作,因为BoneCP需要SLF4J 1.5,而Hibernate需要SLF4j 1.6。如您所知,在pom.xml中不可能同时具有相同依赖项的两个不同版本。所以,我该怎么办才能解决这种惊人的SLF4J副作用??? 我得到的错误是臭名昭著的: 我需要添加它,但是不允许具有两个不

  • 1.背景 项目里已经引入了bcprov-jdk15on-1.54.jar,并且在很多地方使用. 现在合作方给过来一套新的接入资料,里面有以下jar包. 2.问题 项目中的bcprov-jdk15on存在两个版本,旧的是1.54,新的是1.69. 类似于下面这张图: 由于很多地方用到了1.54版本,所以不能直接升级到1.69. 现在想实现以下两点: 对于本次的新版本,其中的fintech-java-

  • 问题内容: 我知道对于经验丰富的编码人员来说,这可能是一个愚蠢的问题。但是我有一个库(http客户端),我的项目中使用的其他一些框架/jar也需要。但它们都需要不同的主要版本,例如: 类加载器是否足够智能以某种方式将它们分开?很有可能不是吗?万一所有三个jar中的Class都相同,Classloader如何处理这个问题。加载哪一个?为什么? Classloader是仅拾取一个jar还是将其任意混合

  • 问题内容: 事实 在我的Java应用程序中,我必须同时处理具有不同架构版本的XML文件(xsd文件)。XML文件的内容在不同版本之间仅发生了少许变化,因此我想主要使用相同的代码来处理它,并根据所使用架构的版本进行一些区分大小写的操作。 当前解决方案 现在,我正在使用SAX解析器解析XML文件,而我自己忽略了架构版本,只是检查是否存在需要处理的标签。 可能的选择 我真的很想使用JAXB生成用于解析X

  • 问题内容: 我有一个Java项目正在使用两个导入的具有相同类()的jar 。导入类时,有没有一种方法可以明确说明要使用哪个jar?使用: 似乎按照构建路径顺序的顺序使用该类,但是由于某种原因,似乎并非如此 在运行时。我正在Eclipse中构建项目。 问题答案: 您不能仅在Java源代码中执行所要求的操作。Java不是为此而设计的。 这是一种糟糕的情况,只有使用自定义类加载器才能可靠地处理它们,每个

  • 问题内容: 我必须使用两个版本的Java(1.6.21和1.7)。我公司的代码取决于1.6_21,我们计划使用人工制品。我们正在本地测试工件,但是工件需要Java 1.7或更高版本。我希望我的默认Java主目录指向1.6_21,对于工件应为1.7。 但是问题出在我安装Java 7以后,它就将自身设置为默认值。我读过很多文章,它们解释了如何管理Java的两个版本,但是我的工件和Eclipse必须同时