osgi アプリケーションで querydsl ライブラリを使用しています。アーティファクト querydsl-jpa には依存関係として hibernate-jpa-2.0-api があります。
休止状態を使用しないため、pom.xml にそのような除外を追加しました。それでも (karaf features.xml ファイルを介して) サービスを開始しようとすると、次のようになります。
コマンド実行エラー: 機能 querydsl-jpa-2.5.0 でバンドル mvn:com.mysema.querydsl/querydsl-jpa/2.5.0 を開始できませんでした: バンドル com.mysema.querydsl.jpa の未解決の制約 [223] : 223.0 を解決できません: 要件 [223.0] パッケージがありません。(&(package=org.hibernate)(version>=3.6.8.Final))
mvn プロジェクトの依存関係: ツリーは休止状態の依存関係を返しません。これは、依存関係が明示的に除外されている場合でも、osgi 依存関係が querydsl バンドルのマニフェスト ファイルによって排他的に決定されることを意味しますか?
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>2.5.0</version>
<exclusions>
<exclusion>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</exclusion>
</exclusions>
</dependency>
および features.xml からの抜粋
<feature name='querydsl-jpa' version='2.5.0'>
<bundle>mvn:org.apache.felix/org.osgi.compendium/1.4.0</bundle>
<bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/1.1</bundle>
<bundle>mvn:com.mysema.querydsl/querydsl-core/2.5.0</bundle>
<bundle>mvn:com.mysema.commons/mysema-commons-lang/0.2.2</bundle>
<bundle>mvn:com.mysema.querydsl/querydsl-sql/2.5.0</bundle>
<bundle>mvn:com.mysema.querydsl/querydsl-jpa/2.5.0</bundle>
</feature>