如何将捆绑包清单添加到现有的maven依赖项?

时间:2014-12-16 10:36:00

标签: maven-2 osgi manifest xmp

我在maven文件中使用Adobe XMP Core依赖

<dependency>
    <groupId>com.adobe.xmp</groupId>
    <artifactId>xmpcore</artifactId>
    <version>5.1.2</version>
</dependency>

该捆绑包的MANIFEST.MF不适合osgi部署,因为没有提供捆绑特定信息。所以我需要将以下行添加到Manifest.mf

Bundle-ClassPath: .
Bundle-Version: 5.1.2
Bundle-Name: xmpcore    
Bundle-ManifestVersion: 2
Bundle-SymbolicName: com.adobe.xmp.xmpcore
Export-Package: 
 com.adobe.xmp;version="5.1.2",
 com.adobe.xmp.impl;version="5.1.2",
 com.adobe.xmp.impl.xpath;version="5.1.2",

有没有办法解压这个maven artefact并通过maven依赖插件或任何不同的方式交换提供的清单?

2 个答案:

答案 0 :(得分:1)

对于运行时增强功能,请使用Pax URL Wrap Project。如果您的环境中有此捆绑包,请将bundle:url-schema添加到捆绑包安装中,它将动态自动包装您的捆绑包。

答案 1 :(得分:0)

IIRC,Eclipse Virgo Bundlor可以为您完成这项工作。 http://www.eclipse.org/virgo/documentation/bundlor-documentation-1.1.1.RELEASE/docs/user-guide/htmlsingle/user-guide.html#usage.command.line

Virgo Bundlor将添加所有export-Package语句+所有import语句,他可以通过java文件中声明的import-statements找到它们。如果jar使用动态类加载,则需要添加带有附加导入的template.mf文件。