Maven bundle插件无法生成正确的Export-Package

时间:2017-12-21 12:54:41

标签: maven plugins osgi bundle pom.xml

我的项目有几个Maven模块。所有这些模块都是捆绑的。

我使用maven-bundle-plugin生成包含Import-Package和Export-Package指令的MANIFEST.MF文件。

当我在Export-Package中指定一个包时,maven-bundle-plugin会生成MANIFEST.MF 而不用我在配置中指定的包。

为什么插件会这样做? 在我的情况下很烦人:这个包有另一个包所需的包。所以当我尝试启动我的捆绑包时,我有未解决的依赖...

以下是我的pom.xml的摘录:

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
        <instructions>
            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
            <Bundle-Description>${project.description}</Bundle-Description>
            <Export-package>com.company.manager.impl</Export-package>
        </instructions>
    </configuration>
</plugin>

生成的MANIFEST.MF文件不包含com.company.manager.impl包。

任何人都可以帮助我吗?

非常感谢。 Hejk

2 个答案:

答案 0 :(得分:0)

Export-package拼写错误。它必须是Export-Package

答案 1 :(得分:0)

好吧,我找到了错误的来源。

根据插件的文档(有点隐藏......):

  

现在假设Export-Package是您的包中的一组包   本地Java源代码,不包括默认包&#39;。&#39;和任何包裹   包含&#39; impl&#39;或者&#39;内部&#39;。 (在bundleplugin的第2版之前   它基于符号名称)

我的包裹名称包含&#34; impl&#34;。我改变了它现在有用......

Hejk