elasticsearch,neo4j,lucene,Java,Maven,elasticsearch,Neo4j,Lucene" /> elasticsearch,neo4j,lucene,Java,Maven,elasticsearch,Neo4j,Lucene" />

Java 如何将同一软件包的多个版本作为项目的间接依赖项?

Java 如何将同一软件包的多个版本作为项目的间接依赖项?,java,maven,elasticsearch,neo4j,lucene,Java,Maven,elasticsearch,Neo4j,Lucene,我正在做一个同时连接Elasticsearch 5.2.1和Neo4j 3.1.0的项目。这两个包都使用Lucene,但不幸的是不兼容的版本。Elaticseach需要Lucence 6.4.1,Neo4j需要Lucene 5.5.0 因此,我面临运行时错误,因为有些类具有不兼容的签名。有没有办法在一个项目中同时使用Elasticsearch和Neo4j(具有给定的版本) 我想做的是将Elasticsearch包添加到。以下是我添加的Elasticsearch依赖项: <depen

我正在做一个同时连接Elasticsearch 5.2.1和Neo4j 3.1.0的项目。这两个包都使用Lucene,但不幸的是不兼容的版本。Elaticseach需要Lucence 6.4.1,Neo4j需要Lucene 5.5.0

因此,我面临运行时错误,因为有些类具有不兼容的签名。有没有办法在一个项目中同时使用Elasticsearch和Neo4j(具有给定的版本)

我想做的是将Elasticsearch包添加到。以下是我添加的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>

org.elasticsearch
弹性搜索
5.2.1
org.elasticsearch.client
运输
5.2.1

如何使这两个jar能够很好地配合使用?

每个jar组合都应该打包在一个具有依赖项或war的不同jar中,并且它们不应该共享同一个父类加载器,这样,在具有依赖项或war的jar的两个不同版本中存在的加载类就可以由一个不同的jar加载类加载器。

据我所知,这是不可能的。你可以使用这两个版本的一些版本,它们都有Lucene的兼容版本。但是我需要这两个版本的最新版本!!!你真的需要把它们放在一个只包含一个pom文件的项目中吗?@khmarbaise我已经用我想做的事情更新了这个问题,因为老实说,我不确定我是否理解你的问题。你能告诉我如何实现你的解决方案吗?