我有一个大的日食RCP应用程序。查看Package Explorer视图,我有很多插件。在每个插件下面都有一个Plug-in Dependencies部分和一个lib目录。 Plug-in Dependencies部分和lib目录中的jar有什么区别? Plug-in Dependencies部分不是磁盘上的物理目录。插件依赖项部分是plugin.xml文件的可视化表示吗?这两种不同的东西之间有什么关系?
答案 0 :(得分:1)
Plug-in Dependencies部分显示了此插件使用的其他插件。这相当于' Require-Bundle'和' Import-Package'插件META-INF / MANIFEST.MF的各个部分。
任何' lib'文件夹不是插件的标准功能。如果插件需要使用一些非插件罐子,它们可以包含在插件中,并且通常放在“lib”中。夹。 ' Bundle-ClassPath' MANIFEST.MF中的条目列出了插件的类路径中包含的所有内容。
注意:Eclipse插件符合OSGi规范。 OSGi称插件为' Bundles'。
这里的示例是来自我的一个RCP中的插件的MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: greg.music.ogg;singleton:=true
Bundle-Version: 2.0.0.qualifier
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
Require-Bundle: greg.music.core;bundle-version="1.0.0",
greg.music.resources;bundle-version="1.0.0",
org.eclipse.core.runtime,
javazoom.jlgui.basicplayer,
org.eclipse.e4.core.services;bundle-version="2.0.100"
Bundle-ClassPath: .,
lib/jogg-0.0.7.jar,
lib/jorbis-0.0.15.jar,
lib/vorbisspi1.0.2.jar
Bundle-RequiredExecutionEnvironment: JavaSE-9
Import-Package: javax.annotation;version="1.0.0",
javax.inject;version="1.0.0",
org.eclipse.e4.core.di.annotations
有一个' Require-Bundle'对于其他5个插件和“进口包装”#39;其他3个包。 ' Bundle-Classpath'包括主要的插件代码(显示为'。')和3个jars in' lib' 。目录