在开发Eclipse应用程序,在MANIFEST.MF的依赖性选项卡有两列。
其一是Required Plug-ins
,另一种是Imported Packages
。
为什么我们需要Imported Packages
,当我们有Required Plug-ins
?
注释就有“这个插件依赖没有明确确定其原产插件”,但我不知道在什么情况下,一个不想要明确地识别插件的起源,什么是它的优势, ?
添加
相关的问题- 什么是Eclipse的包和插件之间的区别?
在开发Eclipse应用程序,在MANIFEST.MF的依赖性选项卡有两列。
其一是Required Plug-ins
,另一种是Imported Packages
。
为什么我们需要Imported Packages
,当我们有Required Plug-ins
?
注释就有“这个插件依赖没有明确确定其原产插件”,但我不知道在什么情况下,一个不想要明确地识别插件的起源,什么是它的优势, ?
相关的问题- 什么是Eclipse的包和插件之间的区别?
导入包提供间接的上方需要束的额外的水平。
考虑到一些标准API的情况下... org.standard.framework
。 假设两家公司实施此API,也许你有捆绑com.abc.framework
和com.xyz.framework
。 这两个实施束将出口org.standard.framework
包。
现在假设,你需要一个org.standard.framework
实现,但你并不特别在意哪一个。 如果您需要任何com.abc.framework
或com.xyz.framework
包,你自己绑到特定的实现。 随着进口包指令,你让的OSGi作为一个间接层。
进口包装的另一个优点是,你的依赖并不需要改变,如果一个包移动到另一个包。 这种情况可以重构时束被拆分或合并过程中出现。
由于这些原因,OSGi的规范作家现在一般建议使用在需要束相对较新的进口-package指令。 问题是,并非所有的包都为此做好准备。 许多出口包时尚未指定版本。 这使得进口封装在许多情况下是不切实际的。
指定在整个插件的依赖,而不是,那么只有必需的软件包可以创建一个循环依赖,如果你有很多的插件。 这是更好的做法是只指定实际需要的软件包。 因为如果你是肯定的插件量小,你能够有效地保持相关性,欢迎您通过指定整个插件来简化你的生活。 希望这可以帮助。