我正在开发一个同时连接到Elasticsearch 5.2.1和Neo4j 3.1.0的项目。这两个软件包都使用Lucene但不幸的是版本不兼容。 Elaticseach需要Lucence 6.4.1和Neo4j与Lucene 5.5.0一起使用。
结果,我面临运行时错误,因为某些类具有不兼容的签名。有什么方法可以在一个项目中同时拥有Elasticsearch和Neo4j(具有给定版本)吗?
我要做的是将Elasticsearch包添加到this project。以下是我添加的Elasticsearch依赖项:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.2.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.2.1</version>
</dependency>
我怎样才能让这两个人很好地相互配合?
答案 0 :(得分:0)
jar的每个组合都应该打包在一个带有依赖项或war的独特jar中,这些不应该共享相同的父类加载器,以便在具有依赖关系或战争的jar的两个不同版本中退出的加载类将被加载一个独特的类加载器。