在OSGi包中,我试图删除*;resolution=optional
并指定特定的导入。
当我在运行时检查时,导入如下
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>
答案 0 :(得分:2)
你不能在Manifest中使用*但是你可以使用maven-bundle-plugin并且在其配置中是可能的。
在maven-bundle-plugin中,您通常不必手动指定导入。该插件扫描已使用的包并配置导入包语句,包括标准版本范围。如果您的maven依赖项是可选的,它也将使用可选标志。