我正在尝试创建一个包装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及其所有依赖项吸入到bundle中,并且效果很好。但是,将所有jar添加到Bundle-ClassPath会导致bnd将它们添加到Private-Package。通常情况下我不会关心,除了包含的罐子中有这么多包装,bnd文件变得巨大,并且bndtools试图创建它。
我尝试手动创建Private-Package并将其放在bnd文件中,但是只是覆盖它。
答案 0 :(得分:1)
我不确定你为什么担心Private-Package
。它对OSGi框架没有任何意义。这只是一件事。如果您不想在清单中看到它,只需添加
-removeheaders: Private-Package
到您的bnd文件。