使用 DS 和 maven-bundle-plugin 生成清单的正确方法是什么?



我今天正在使用maven-bundle-plugin来生成我的项目的清单。由于其他限制,我的模块使用"jar"包装(我不能使用"捆绑"包装),目前,我的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>   

我现在想从我的注释组件生成"服务组件"标头和 DS xml 描述符,但添加" <_dsannotations>*</_dsannotations> "不起作用:

  1. 服务组件标头已正确生成,但 jar 中不存在 xml
  2. 如果我在没有干净目标的情况下重建我的 maven 项目,那么"服务组件"标头具有重复的引用: 挖掘代码后,插件使用从目标/类/元 INF/清单生成的旧清单。MF 并将其与新生成的合并。然后连接"服务组件"

那么,我应该如何配置我的pom才能正常工作?现在,我使用"unpackBundle"选项(以便将xml放在我的捆绑包中)和一个空的src/main/resource/MANIFEST。MF(为了绕过旧清单的合并):它看起来很丑:-)

此外,"bnd-maven-plugin"按预期工作,但与 maven 的集成可能太轻(或没有记录?),作为父 pom 中的"全局配置"、生成捆绑符号名称或捆绑名称等。

谢谢!

有一个较新的 maven 插件,更接近 bnd 和 maven。此插件不会接管 jar 目标并正确遵循 maven 阶段。

看看 http://njbartlett.name/2015/03/27/announcing-bnd-maven-plugin.html

相关内容

最新更新