1

Maven プロジェクトでの hibernate-annotations jar の場所に関して具体的な質問があります。

私のプロジェクトは 3 つのモジュールで構成されています。モジュール Client と Server は、どちらもモジュール Shared に依存しています。Maven は、デプロイ用に 2 つのパッケージをビルドします: クライアント + 共有およびサーバー + 共有。

クライアントとサーバー間で (RMI 経由で) 渡す必要があるため、注釈付きの Hibernate エンティティは Shared モジュールにあります。

今私の問題が来ます。hibernate-annotations.jar は、Shared モジュールの依存関係として使用され、Hibernate エンティティのコンパイルを可能にします。ライブラリ自体は hibernate-core に依存しています。その結果、デプロイされたクライアント アプリケーションには休止状態のライブラリがありますが、実際にはそれらが必要ない場合でも同様です。瓶はかなり大きいので、クライアントをできるだけスリムに保ちたい.

この問題を回避するための確立された手法はありますか? 頭に浮かぶのは、XML ベースの Hibernate 構成を使用して、Hibernate の依存関係を Server モジュールに移動できるようにすることですが、注釈に固執したいと思います。

ありがとう。

4

2 に答える 2

1

クライアントの pom.xml で Shared 依存関係の 1 つ以上の推移的な依存関係を除外できます。以下は、共有プロジェクトのグループ ID が「org.shared」、アーティファクト ID「shared」、バージョンが「0.0.1-SNAPSHOT」であると仮定した例です。

<dependency>
  <groupId>org.shared</groupId>
  <artifactId>shared</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <exclusions>
    <exclusion>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
    </exclusion>
    ...
  </exclusions>
</dependency>
于 2015-01-05T16:07:44.803 に答える