2016-12-12 11 views
1

maven-bundle-pluginを使用してMavenモジュールからOSGIバンドルを作成しています。maven-bundle-pluginによって生成されたマニフェストのパッケージバージョンのソースを特定する方法

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <configuration> 
     <instructions> 
      <Import-Package> 
       * 
      </Import-Package> 
      <Export-Package> 
       my.bundle.packages 
      </Export-Package> 
     </instructions> 
    </configuration> 
</plugin> 

残念ながら、javax.annotationを公開し、依存関係があるようです。このため、生成されたマニフェストには、Import-Package: javax.annotation;version="[3.2,4)"

が含まれています。このパッケージをどのようにエクスポートするのですか? mvn dependency:listを使用すると、いくつかの依存関係(com.google.code.findbugs:annotationsとcom.google.code.findbugs:jsr305)を除外できましたが、それでもバージョンの範囲は残ります。 私は直接依存関係のマニフェストファイルを見てきましたが、javax.annotationをエクスポートする他のjarファイルは見つかりませんでした。

注:javax.annotation:com.springsource.javax.annotationに依存関係を追加すると、Manifestはjavax.annotationバージョン1.0.0を正しくインポートしますが、これは必ずしも必要ではありません。私は個人的にそれを見つけるでしょう未知の依存関係を除外するためにクリーナー。

+0

が含まれている凝視ポイントですパッケージjavax.annotations? –

+0

それらのどれも実行しませんが、ネストされた依存関係が存在する可能性があります。このパッケージはjdkの一部であり、実行時にspringsource-bundleがデプロイされます – TomVW

+0

spring 3.xを使用すると、3.xのインポート範囲がspringを指している可能性があります。ポームのコンテンツを投稿できますか? –

答えて

0

このパッケージをどのようにエクスポートするのですか?

あなたはnixのコンソールとbndコマンドラインツールは、あなたが試みることができるインストール*した場合:

mvn dependency:build-classpath | grep jar | tr ':' ' ' | xargs bnd find -e 'javax.annotation' 

は、おそらくこれを行うには良い方法がありますが、それはjarファイルを依存関係

+0

これはある意味で役立ちました。私が前に特定した依存関係は、そのパッケージを公開する唯一のものです。しかし、マニフェストは依然として不正なバージョンを指定しています。 – TomVW

+0

印象的なコマンドライン! –

+0

私はマニフェストを正しく読むことができません。このコマンドは問題のある依存関係を見つけるのを助け、パッケージを公開するjarをリストアップします – TomVW

関連する問題