当我们在Eclipse插件依赖项中有"Required Plug-ins"时,为什么我们需要`Imported Packages`?

pro*_*eek 15 eclipse dependencies eclipse-pdt

在开发Eclipse应用程序时,MANIFEST.MF中的依赖项选项卡有两列.

一个是Required Plug-ins另一个是Imported Packages.

为什么我们需要Imported Packages时,我们有Required Plug-ins

评论认为"这个插件取决于没有明确地识别它们的原始插件",但是我不确定在什么情况下人们不想明确地识别它们的原始插件,它的优点是什么? ?

在此输入图像描述

添加

相关问题 - Eclipse软件包和插件之间有什么区别?

Kon*_*hik 9

导入包提供了额外的间接级别,而不是需要捆绑.

考虑到一些标准API的情况下... org.standard.framework.假设两家公司实施了这个API,也许你有捆绑com.abc.frameworkcom.xyz.framework.这两个实现包都会导出org.standard.framework包.

现在假设,您需要一个org.standard.framework实现,但您并不特别关心哪一个.如果您需要com.abc.frameworkcom.xyz.framework捆绑,那么您将自己与特定实现联系起来.使用import-package指令,您可以让OSGi充当间接层.

import-package的另一个优点是,如果将包移动到另一个包,则不需要更改依赖项.当捆绑包被分解或组合时,在重构期间可能出现这种情况.

由于这些原因,OSGi规范编写者现在通常建议使用相对较新的import-package指令而不是require-bundle.问题是并非所有的捆绑都准备好了.许多人在导出包时尚未指定版本.这使得import-package在许多情况下不切实际.

  • 很好的解释!但我认为,与 require-bundle 相比,添加一些关于 import-package 的缺点是个好主意:**使用 require-bundle,可以更轻松地快速了解您的项目所依赖的组件。**也更容易找到依赖项。**import-package 的灵活性的代价是降低了清晰度。**(我认为这方面非常重要,当人们争论应该使用 import-package 时,通常没有考虑到这一点。) (2认同)