减少OSGi Bundle

时间:2015-05-07 06:48:40

标签: maven osgi osgi-bundle maven-bundle-plugin

在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>

1 个答案:

答案 0 :(得分:2)

你不能在Manifest中使用*但是你可以使用maven-bundle-plugin并且在其配置中是可能的。

在maven-bundle-plugin中,您通常不必手动指定导入。该插件扫描已使用的包并配置导入包语句,包括标准版本范围。如果您的maven依赖项是可选的,它也将使用可选标志。