如何使用 Maven bundle 插件从包中排除包

how to use maven bundle plugin to exclude package out of bundle

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

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

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

但是在打包之后,那个包还在里面。

您使用的语法只是排除包被导出,而不是被打包。您需要使用标准的 Maven 汇编指令从打包的工件中排除某些东西。这不是 maven-bundle-plugin 的目标,maven-bundle-plugin 仅从打包的工件生成 OSGi-Manifest 条目。

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

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