一つのモジュールでは、私が使用spring-boot-starter-activemq:2.07.RELEASE
に依存しているactivemq-broker:5.15.8
に依存していますguava:18.0
。
別のモジュールでは、私が使用する必要がありますので、グアバを使用したいと思います:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
私は私の方が高いバージョンを使用する場合pom.xml
もによって使用されます。このバージョンはactivemq-broker
、依存調停の最寄りの定義ルールに起因する(参照依存関係メカニズムの概要を)
私は頼まれているものよりもグァバの異なるバージョンを提供する必要はありませんactivemq-broker
。だから、バージョンを同期させるためには、春ブーツのアップグレードがありますたびに、私はそれらを手動で同期させるためにバージョンをチェックする必要があります。
私が使用activemq-broker
し、guava
一例としてではなく、私の質問は、より一般的である:別に自動的に一つのモジュールからの依存関係のバージョンを再利用する方法?
私が定義する親依存関係の管理が処理されます私のプロジェクトのために。(あなたはおそらくすでにこれを持っています)。両親dependendency管理部では、私は考えインポートの依存関係の管理ActiveMQの親を。この方法は、あなただけのお子様の中に明示的なバージョンせずに、依存関係を定義することができます。
また、あなたはバージョンのプロパティを取得するには、スプリングブーツ依存関係からあなたの親継承を行うことができます。(この例でactivemq.versionこのからフェッチされます)
例:親ポンポン
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-parent</artifactId>
<version>${activemq.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
.....
</dependencyManagement>
あなたの親は春ブート依存性を継承していない場合、あなたは特定のバージョンを書く代わりにしなければならない${activemq.version}
ためにactivemq-parent
子で、この後
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
グアバのバージョンは同じになりますactivemq-parent
。(それはそこに定義されているため)