1

プロジェクトの依存関係を管理するために 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 がこの種の衝突に役立つことを期待していました。

4

0 に答える 0