1

我正在尝试创建一个包含 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 个条目)最后一行是问题所在。Include-Resource 条目会将包装好的 jar 及其所有依赖项吸到包中,效果很好。但是,将所有 jar 添加到 Bundle-ClassPath 会导致 bnd 将它们添加到 Private-Package。通常我不会在意,除了包含的 jar 中有这么多包以至于 bnd 文件变得巨大,并且 bndtools 试图创建它时爆炸了。

我尝试手动创建 Private-Package 并将其放入 bnd 文件中,但 bnd 只是覆盖它。

4

1 回答 1

2

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

-removeheaders: Private-Package

到您的 bnd 文件。

于 2014-11-21T16:25:57.527 回答