*;resolution=optional
OSGi バンドル内で、特定のインポートを削除して指定しようとしています。実行時にインポートを確認すると、次のようになります
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>