Java eclipse rcp中插件依赖项和库之间的区别是什么

Java eclipse rcp中插件依赖项和库之间的区别是什么,java,eclipse-rcp,Java,Eclipse Rcp,我有一个大型eclipse RCP应用程序。查看PackageExplorer视图,我有许多插件。每个插件下面都有一个插件依赖项部分和一个lib目录。插件依赖项部分中的jar与lib目录之间有什么区别?插件依赖项部分不是磁盘上的物理目录。插件依赖项部分是plugin.xml文件的可视化表示吗?这两个不同的东西之间的关系是什么?插件依赖项部分向您展示了该插件使用的其他插件。这对应于插件META-INF/MANIFEST.MF的“Require Bundle”和“Import Package”部分

我有一个大型eclipse RCP应用程序。查看PackageExplorer视图,我有许多插件。每个插件下面都有一个插件依赖项部分和一个lib目录。插件依赖项部分中的jar与lib目录之间有什么区别?插件依赖项部分不是磁盘上的物理目录。插件依赖项部分是plugin.xml文件的可视化表示吗?这两个不同的东西之间的关系是什么?

插件依赖项部分向您展示了该插件使用的其他插件。这对应于插件META-INF/MANIFEST.MF的“Require Bundle”和“Import Package”部分

任何“lib”文件夹都不是插件的标准功能。如果插件需要使用一些非插件jar,它们可以包含在插件中,通常放在“lib”文件夹中。MANIFEST.MF中的“Bundle ClassPath”条目列出了插件类路径中包含的所有内容

注意:Eclipse插件符合OSGi规范。OSGi将插件称为“Bundles”

以下是我的一个RCP中插件的MANIFEST.MF示例:

清单版本:1.0 软件包版本:2 捆绑包名称:%plugin.Name 捆绑符号名称:greg.music.ogg;单例:=true 捆绑包版本:2.0.0.0 捆绑供应商:%plugin.provider 捆绑本地化:插件 需要捆绑:greg.music.core;捆绑包版本=1.0.0, 格雷格·音乐·资源;捆绑包版本=1.0.0, org.eclipse.core.runtime, javazoom.jlgui.basiclayer, org.eclipse.e4.core.services;捆绑包版本=2.0.100 包类路径:。, lib/jogg-0.0.7.jar, lib/jorbis-0.0.15.jar, lib/vorbispi1.0.2.jar Bundle-RequiredExecutionEnvironment:JavaSE-9 导入包:javax.annotation;版本=1.0.0, javax.inject;版本=1.0.0, org.eclipse.e4.core.di.annotations 另外5个插件有一个“Require Bundle”,另外3个插件有一个“Import Package”。“Bundle类路径”包括显示为“.”的主插件代码和“lib”目录中的3个jar