如何在我的Java项目中使用两个版本的jar
问题内容:
在我的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。