我今天使用 maven-bundle-plugin 来生成我的项目清单。由于其他限制,我的模块使用“jar”包装(我不能使用“bundle”包装),目前,我的 pom 看起来像这样:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<instructions>
...
</instructions>
</configuration>
</execution>
</executions>
</plugin>
我现在想从带注释的组件中生成一个“Service-Component”标头和 DS xml 描述符,但是添加“ <_dsannotations>*</_dsannotations>
”不起作用:
- Service-Component 标头已正确生成,但 jar 中不存在 xml
- 如果我在没有明确目标的情况下重建我的 maven 项目,则“Service-Component”标头有重复的引用:在挖掘代码后,插件使用来自 target/classes/META-INF/MANIFEST.MF 的旧生成清单并合并它与新生成的。然后连接“服务组件”
那么,我应该如何配置我的 pom 以使其正常工作?现在,我使用“unpackBundle”选项(为了在我的包中包含 xml)和一个空的 src/main/resource/MANIFEST.MF(为了绕过旧清单的合并):它看起来很丑: -)
此外,“bnd-maven-plugin”按预期工作,但与 maven 的集成可能太轻(或没有记录?),作为父 pom 中的“全局配置”,Bundle-SymbolicName 或 Bundle-Name 的生成, ETC。
谢谢!