如何在OSGI声明性服务中将Service-Component标头添加到bundle清单文件中?

时间:2012-03-07 09:26:41

标签: osgi apache-felix bnd

我正在使用OSGI声明性服务(SCR)来创建组件包。我并不热衷于使用maven-scr-plugin生成的基于注释的组件xml文件。我正在手工编写component.xml。但是,我需要将Service-Component标头添加到MANIFEST文件中。我正在使用maven-bundle-plugin来构建osgi包,我可以在插件配置中给出的任何指令都会将这样的标题添加到清单文件中?

一些有用的链接:

felix-SCR

maven-scr-plugin

BND-Service Component

感谢

1 个答案:

答案 0 :(得分:8)

任何可以进入清单文件的标头都可以作为元素进入bundle插件的配置。例如,

<plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.2.0</version>
        <extensions>true</extensions>
        <configuration>
            <instructions>
                <Bundle-SymbolicName>
                  ${pom.artifactId}
                </Bundle-SymbolicName>
                <Service-Component>
                 OSGI-INF/some-file.xml
                </Service-Component>
                ....

<extensions>true</extensions>行可以启用任意自定义标头,但我相信Service-Component包含在已知标头集中,因此这里不需要它。