プロジェクトの依存関係を管理するために Spring IO 1.0.1 BOM を使用しています。次のように、スーパーポンの依存関係管理セクションにインポートしました-
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>1.0.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
今、私のプロジェクトのサブモジュール POM で、これらの依存関係を宣言しました
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
そして、私の最後のパッケージ化された戦争には、hibernate-jpa-2.0 と hibernate-jpa-2.1 の両方が含まれています。エンティティ マネージャは 2.1 に依存し、API は 2.0 であるためです。これらは、デプロイしたアプリ内で競合を引き起こしています。
プラットフォームの bom に 2.1 の宣言が見つからないため、どうすればよいか混乱しています。ドキュメントには、これらの両方がプラットフォームによって提供されるライブラリとしてリストされていますが、BOM は競合するバージョン間の解決策を提供していません。推奨されるアプローチは何ですか? 2.0 を手動で除外し、親 BOM にない場合でも 2.1 を明示的に宣言する必要がありますか? hibernate-entitymanager に 2.0 API の使用を強制する必要がありますか?
私は、IO プラットフォームの BOM がこの種の衝突に役立つことを期待していました。