我熟悉Import-Package
和Export-Package
,但这个对我来说是新的。它是做什么的?
在OSGi容器中运行时,它什么也没做。实际上,在OSGi规范中甚至都没有提及(我检查了R4)。
但是,可以在.bnd
文件中指定它以供bnd在构建时使用。如果这样做,它可以用于确定bundle中包含哪些内容。
当bnd构建一个bundle时,它会自动确定哪些类需要加入到bundle中。所有导出的包中的类都会被包括在内,它们所依赖的所有类(传递性地)也会被包括在内。这意味着,如果一个类似乎没有被使用,那么它就不会被包含在bundle中。然而,您可以使用Private-Package指令告诉bnd将包的内容包含在bundle中,即使它似乎没有被使用。如果未指定Private-Package指令,则bnd会自动生成该指令。
Private-Package文档如下:
私有包
包含方法与Export-Package标头相同,唯一的区别是这些包不会被导出。此标头将被复制到清单中。如果一个包被导出和私有包头选中,那么导出优先。
Private-Package= com.*