如何在OSGI声明性服务中将服务组件头添加到包清单文件中?

如何在OSGI声明性服务中将服务组件头添加到包清单文件中?,osgi,apache-felix,bnd,Osgi,Apache Felix,Bnd,我正在使用OSGI声明性服务(SCR)创建一个组件包。我不喜欢使用maven scr插件生成的基于注释的组件xml文件。我正在手工编写component.xml。但是,我需要将服务组件头添加到清单文件中。我正在使用maven bundle插件来构建osgi捆绑包,在插件配置中,我能给出任何将这样一个头添加到清单文件的说明吗 一些有用的链接: 谢谢任何可以放在清单文件中的头都可以作为元素放在bundle插件的配置中。比如说, <plugin> <groupI

我正在使用OSGI声明性服务(SCR)创建一个组件包。我不喜欢使用maven scr插件生成的基于注释的组件xml文件。我正在手工编写component.xml。但是,我需要将服务组件头添加到清单文件中。我正在使用maven bundle插件来构建osgi捆绑包,在插件配置中,我能给出任何将这样一个头添加到清单文件的说明吗

一些有用的链接:


谢谢

任何可以放在清单文件中的头都可以作为元素放在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>
                ....

org.apache.felix
maven捆绑插件
2.2.0
真的
${pom.artifactId}
OSGI-INF/some-file.xml
....

true
行支持任意自定义标题,尽管我相信服务组件包含在已知标题集中,所以这里不需要它。

我认为maven bundle插件不会理解什么是服务组件元素,工作很好,谢谢maven bundle插件只是传递标题,它和我没有任何关系。这实际上并不完全正确,因为您还可以在标题中定义组件。请参见“好奇为什么不想使用bnd注释”?没有这样的内容,只是我不想在代码中引入注释api依赖性。