0

*;resolution=optionalOSGi バンドル内で、特定のインポートを削除して指定しようとしています。実行時にインポートを確認すると、次のようになります

org.apache.catalina.valves; version="8.0.20",
org.apache.catalina.util; version="8.0.20",
org.apache.catalina.session; version="8.0.20",
org.apache.catalina.realm; version="8.0.20",
org.apache.catalina.core; version="8.0.20",
org.apache.catalina.connector; version="8.0.20",
org.apache.catalina.authenticator; version="8.0.20",
org.apache.catalina; version="8.0.20",
org.apache.catalina.tribes; version="0.0.0"<unwired><optional>
org.apache.catalina.tribes.group; version="0.0.0"<unwired><optional>
org.apache.catalina.tribes.group.interceptors; version="0.0.0"<unwired><optional>
org.apache.catalina.tribes.io; version="0.0.0"<unwired><optional>
org.apache.catalina.tribes.tipis; version="0.0.0"version="0.0.0"<unwired><optional>

こんなに減らせますか?

<Import-Package>
    org.apache.catalina.*;version="8.0.20",
    org.apache.catalina.tribes.*;resolution:=optional,
</Import-Package>

これは良い習慣ですか?

後の構成で jar をビルドすると、まだ MANIFEST ファイルで、パッケージの横に resolution=optional が表示されます

編集済み

依存セクション

<dependencies>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina-ha</artifactId>
            <version>8.0.20</version>
            <optional>true</optional>
        </dependency>
</dependencies>
4

1 に答える 1

2

* マニフェストでは使用できませんが、maven-bundle-plugin は使用でき、その構成では * 可能です。

maven-bundle-plugin では、通常、手動でインポートを指定する必要はまったくありません。プラグインは、使用されているパッケージをスキャンし、標準のバージョン範囲を含むインポート パッケージ ステートメントを構成します。Maven の依存関係がオプションの場合は、オプションのフラグも使用されます。

于 2015-05-07T07:33:29.487 に答える