【问题标题】:how to use maven bundle plugin to exclude package out of bundle如何使用 Maven 捆绑插件将包排除在捆绑之外
【发布时间】:2024-04-29 05:20:02
【问题描述】:

我有一个包,它使用 maven-jaxb2-plugin 生成所有类到 target/generated/src/main/java。然后我使用 maven bundle 插件来创建一个包。它很简单。

现在,我想从这个包中排除(删除)生成的包 com.xxx.yyyy.common。所以我用:

<Export-Package>
     !com.xxx.yyyy.common,com.xxx.*
</Export-Package>

但是在有了一个捆绑包之后,那个包仍然存在于捆绑包中。

【问题讨论】:

    标签: osgi pom.xml maven-bundle-plugin


    【解决方案1】:

    我已经成功了。 基本上,我们需要使用&lt;Export-Package&gt;&lt;Private-Package&gt; 之间的组合。告诉 maven bundle 插件不要导出这个包并且这个包不是私有包 --> 这意味着我们不需要把这个包保留在包中

    <Export-Package>!com.xxx.yyyy.common</Export-Package>
    <Private-Package>!com.xxx.yyyy.common</Private-Package>
    

    【讨论】:

      【解决方案2】:

      您使用的语法只是排除包被导出,而不是被打包。您需要使用标准的 Maven 组装说明从打包的工件中排除某些内容。这不是 maven-bundle-plugin 的目标,maven-bundle-plugin 仅从您打包的工件生成 OSGi-Manifest 条目。

      【讨论】:

      • 谢谢。您的意见是我们在其他项目中使用的一种选择。对于这个项目,我们更喜欢使用 maven bundle 插件