什么是“出口包装:”。意思?

Mar*_*eng 2 eclipse osgi manifest.mf eclipse-rcp osgi-bundle

想象一个带有package的Eclipse插件(作为OSGi捆绑包)org.acme.foo.bar

可以导出“。” 例如,请参见以下MANIFEST.MF代码段:

Export-Package: .,
 org.acme.foo.bar
Run Code Online (Sandbox Code Playgroud)

编译器对此没有任何问题,因此似乎是合法的出口。

它有什么作用?与以下内容有何区别(“。”未导出)?

Export-Package: org.acme.foo.bar
Run Code Online (Sandbox Code Playgroud)

how*_*ger 5

.默认软件包,但根据OSGi Core,第6版规范 .不是有效值,Export-Package因为软件包名称必须以字母开头:

导出包:: =导出(','导出)*
导出:: =包名称(';'参数)*
包名称:: =包名称(';'包名称)*
包名称: :=唯一名称
唯一名称:: = 标识符( ''标识符) *
标识符:: = jletter jletterordigit *
jletter :: = <看到Java语言规范第三版为JavaLetter >
jletterordigit :: = <看到 Java语言规范第三版的 JavaLetterOrDigit >

因此,最好不要使用默认程序包:

Export-Package: org.acme.foo.bar
Run Code Online (Sandbox Code Playgroud)