繁体   English   中英

eclipse rcp中的插件依赖性和lib之间有什么区别

[英]What is the difference between plug-in dependencies and lib in eclipse rcp

我有一个大型的Eclipse RCP应用程序。 查看Package Explorer视图,我有很多插件。 每个插件下面都有一个“插件依赖项”部分和一个lib目录。 “插件依赖项”部分中的jar和lib目录之间有什么区别? 插件依赖项部分不是磁盘上的物理目录。 插件依赖项部分是plugin.xml文件的直观表示吗? 这两件事之间有什么关系?

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

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

注意:Eclipse插件符合OSGi规范。 OSGi称插件为“捆绑包”。

例如,这是我的一个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

对于其他5个插件有一个“ Require-Bundle”,对于其他3个软件包有一个“ Import-Package”。 “ Bundle-Classpath”包括主插件代码(显示为“。”)和“ lib”目录中的3个jar。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM