我正在尝试创建一个包含 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 只是覆盖它。