1

maven-bundle-plugin を使用して、Maven モジュールから OSGI バンドルを作成しています。

<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 に依存関係を追加すると、マニフェストは javax.annotation バージョン 1.0.0 を正しくインポートしますが、これは必要ではなく、個人的には、不明な依存関係。

4

1 に答える 1

0

このパッケージをエクスポートする依存関係を確認するにはどうすればよいですか?

*nix コンソールとbndコマンド ライン ツールがインストールされている場合は、以下を試すことができます。

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

おそらくこれを行うためのより良い方法がありますが、それは出発点です

于 2016-12-12T14:06:33.483 に答える