2017-03-29 7 views
0

私はElasticsearch 5.2.1とNeo4j 3.1.0に同時に接続するプロジェクトに取り組んでいます。これら2つのパッケージは両方ともLuceneを使用しますが、残念ながら互換性のないバージョンです。 ElaticseachはLucence 6.4.1を必要とし、Neo4jはLucene 5.5.0と連携します。プロジェクトの間接的な依存関係と同じパッケージの複数のバージョンを持つ方法は?

その結果、一部のクラスに互換性のない署名があるため、ランタイムエラーが発生します。 1つのプロジェクトにElasticsearchとNeo4jの両方を(指定されたバージョンで)持つことができる方法はありますか?

私がしようとしているのは、this projectに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> 

は、どのように私はこれら二つがうまくお互いのと一緒にプレイすることができますか?

+0

私が知っているものではありません。 Luceneの互換バージョンを持つこれらの両方のバージョンを使用することができます。 – Sandeep

+0

しかし私は両方の最新バージョンが必要です! – Mehran

+0

あなたは本当に単一のpomファイルだけを含む単一のプロジェクトにそれらを持っている必要がありますか? – khmarbaise

答えて

0

jarの各組み合わせは、依存関係または戦争を持つ別個のjarファイルにパッケージ化する必要があります。これらのファイルは、親クラスローダーを共有してはならないため、依存関係のある2つの異なるバージョンのjarファイルまたはwarクラスローダーによって

+0

あなたのソリューションを実装するにはどうすればいいですか? – Mehran

関連する問題