Source:点击打开链接
Eclipse allows to define dependencies between plug-ins based on bundle or on package level. In the MANIFEST.MF of the plugin.xml you can tell that your plug-in should either depend on another plug-in (and all its exported packages) or if your plug-in should only depend on the availability of certain packages no matter which plug-in is exporting this package.
The corresponding statements in MANIFEST.MF are Require-Bundle: or Import-Package:
Today I got the question what approach should be preferred.
I believe the preferred way should be to use Import-Package because the coupling between the plug-ins is not that tight. As only as one plug-in exports this package the other plug-in will be fine. With this you can replaced a plug-in without changing the other plug-ins.
Of course if you have the same package in different plug-ins then you have to use the plug-in dependency.
The other advantage of plug-in dependencies is that the dependency is very clearly explicit, with the import-package it is not immediately obvious which plug-in is contributing this package.
But in total I would argue that loose coupling is always better so in general import-package should be preferred.
另外还有一篇文章关于OSGi Bundle Dependency写得非常漂亮:OSGi Bundle Dependency