技術: 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 を強制する可能性はありますか?