1

技術: Maven 3 + IntelliJ + ElasticSearch 5.5.0 + Carrot2 3.15.1

私は、いくつかの競合を引き起こす Carrot2 と ElasticSearch を使用したプロジェクトを持っています。Carrot2 は Lucene 5.3.1 を使用し、ElasticSearch は 6.3.1 バージョンを使用します。それを修正するために、cart2 に強制的に 6.3.1 Lucene バージョンを使用させたいと考えています。

プロジェクトのメイン pom ファイルにプロパティを追加しようとしました。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version>
    <elasticsearch.version>5.4.2</elasticsearch.version>
    <org.apache.lucene.version>6.5.1</org.apache.lucene.version>
</properties>

残念ながら、この方法では、Lucene のバージョンの競合が原因でエラーが発生します。最後に、キャロットの依存関係の pom ファイルの内部値を変更することで、ローカル マシンの解決策を見つけました。

<parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>5</version>
</parent>

<groupId>org.carrot2</groupId>
<artifactId>carrot2</artifactId>
<version>3.15.1</version>

<name>Carrot2</name>
(...)
<properties>
(...)
    <org.apache.lucene.version>6.5.1</org.apache.lucene.version>     
    <org.simpleframework.version>2.7.1</org.simpleframework.version>
    <org.carrot2.attributes>1.3.1</org.carrot2.attributes>
</properties>

正常に動作しますが、ローカル マシンでのみ動作します。ニンジンの pom ファイルで変更された Lucene のバージョンは反映されていないようで、プロジェクトのインスタンスでこのバージョンを手動で変更する必要があります。外部依存関係で私のプロジェクト プロパティ値を使用するように maven を強制する可能性はありますか?

4

1 に答える 1