当前位置: 首页 > 面试题库 >

如何在我的Java项目中使用两个版本的jar

朱通
2023-03-14
问题内容

在我的Java项目中,我需要使用依赖于 lucene-3.6.2的* neo4j-1.9.3 和 依赖于 lucene-4.4.0的
ElasticSearch 。我知道,如果我想直接使用两个版本的Lucene,可以使用ClassLoader从Lucene加载不同的类。
*

但是问题是我现在不会直接使用lucene的api。有什么方法可以在neo4j的api运行时加载lucene-3.6.2,而在运行Elasticsearch的api时加载lucene-4.4.0。lucene的两个版本现在冲突了,我需要在一个项目中运行neo4j和elasticsearch。我该如何解决依赖问题?

提前致谢。


问题答案:

您仍然可以使用ClassLoader解决方案,但这是一个讨厌的事情,很容易出错。

您还可以使用其他JVM。

但是我个人选择的解决方案是以下一项或两项:

  • 验证Neo4J是否与Lucene 4.x兼容。也许您会很幸运,并且使用最新版本不会有任何问题。
  • 将它们拆分为两个应用程序,其中另一个应用程序通过Web服务(最可能的REST)调用访问其中一个(例如Neo4J)。无论如何,Neo4J具有内置的REST API。


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

  • 但是这个不能像预期的那样工作,所以我在https://github.com/mygithubid/abcd中分叉(并修改)了它 然后运行,在中,定义更改为 在重新启动使用此的项目后,现在它抛出错误...尽管我看到中添加了文件夹 你能告诉我上面所犯的错误吗?谢谢!

  • 我正在记录一个尚未完全完成的winForms项目,这意味着还有另一个程序员正在编写代码。所以我已经在项目的副本中写了一些重要的评论。此外,我使用sandcastle创建帮助文件。 我的问题:将项目的旧副本中的注释复制到新版本中的最佳方法(如果有的话)是什么?也许沙堡可以做一些事情,比如导入一个留档到一个项目? 我知道这样做并不明智,但我必须检查是否有办法保存文档工作。

  • 由于Log4Shell漏洞,我想搜索并找出我的Java项目是直接实现Log4j还是通过依赖关系实现Log4j,以及哪个版本。 例如,我有使用这些依赖关系管理工具的项目: Maven项目 如何在这些类型的依赖关系管理工具上实现这一点? 有关漏洞的详细信息(包括缓解步骤): CVE-2021-44228 Apache Log4j安全漏洞

  • 我有两个maven项目:projA和projB 投射依赖于投射 PropB依赖于泽西2.15 projA依赖于hbase测试UTIL hbase测试UTIL取决于1.8。十、 如果projB在没有任何排除的情况下声明了对projA的依赖,那么projB的测试将失败,因为它们使用了Jersey项目中某个类的错误版本(1.8.x)。 如果詹姆士声明依赖于詹姆士组件,那么上面的问题就消失了。但是,新的问

  • 问题内容: 我有一个Cordova项目,并且正在为其构建一个android插件。然后,我的插件使用了使用菱形运算(<>)的库。我尝试运行它,但收到此错误: 当我跑步时: 我在发布之前先进行研究,有些人通过将ant更改为 但这对我没有用。 我还尝试制作一个文件来设置和,但是它似乎只是在解析主项目,而不是我在插件上使用的子项目。 问题答案: 好的,对我有用的是添加插件使用的所有子项目(库)作为yout