如何避免让 bnd 从捆绑类路径创建私有包条目



我正在尝试创建一个包装 jar 及其所有依赖项(大约 20 个其他 jar)并公开我自己设计的接口的捆绑包。我不想为所有依赖项创建捆绑包,因为我想创建一个包含整个混乱的"密封组件"。

显示问题的示例 bnd 文件如下所示

Bundle-Version: 0.0.0.${tstamp}
Export-Package:  
    pub
Include-Resource: lib=lib/
Bundle-ClassPath: .,lib/ant-1.9.3.jar

(这只是一个示例...在现实世界中,Bundle-Classpath中大约有20个条目)最后一行是问题所在。包含资源条目会将包装的 jar 及其所有依赖项吸进捆绑包中,这很好用。但是,将所有 jar 添加到 Bundle-ClassPath 会导致 bnd 将它们添加到 Private-Package。通常我不会在乎,除了包含的 jar 中有太多包,以至于 bnd 文件变得巨大,并且 bndtools 在尝试创建它时会爆炸。

我尝试手动创建私有包并将其放入 bnd 文件中,但 bnd 只是覆盖了它。

我不知道你为什么担心Private-Package.它对OSGi框架没有任何意义。这只是一件好事。如果您不想在清单中看到它,只需添加

-removeheaders: Private-Package

到您的 BND 文件。

相关内容

  • 没有找到相关文章

最新更新