我最近开发了一个Eclipse插件,但插件似乎没有在Eclipse(3.4.2)中加载。如果我去
Help > About Eclipse Platform > Configuration Details
我看到列出的插件
file:/C:/Program Files/eclipse/ganymede/plugins/de.vogella.plugin.htmlconverter_1.0.0.jar
然而它似乎不起作用。我知道插件已经正确实现,就好像我右键单击项目(de.vogella.plugin.htmlconverter
)并选择Run Eclipse Application
然后启动了一个新的Eclipse并且已经实现的弹出菜单工作。那么,当我从Eclipse导出项目并将其放在plugins目录中时,为什么它不起作用。
我在Windows XP和Mac OS X上都试过这个无用,如果我检查JAR,我会看到所有必需的工件。
META-INF/
META-INF/MANIFEST.MF
de/
de/vogella/
de/vogella/plugin/
de/vogella/plugin/htmlconverter/
de/vogella/plugin/htmlconverter/handler/
src/
src/de/
src/de/vogella/
src/de/vogella/plugin/
src/de/vogella/plugin/htmlconverter/
src/de/vogella/plugin/htmlconverter/handler/
de/vogella/plugin/htmlconverter/Activator.class
de/vogella/plugin/htmlconverter/handler/Convert.class
plugin.xml
我的MANIFEST.MF
也看起来像这样
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Htmlconverter Plug-in
Bundle-SymbolicName: de.vogella.plugin.htmlconverter;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: de.vogella.plugin.htmlconverter.Activator
Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.co
re.resources;bundle-version="3.4.0",org.eclipse.jdt.core;bundle-versi
on="3.4.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: org.osgi.framework;version="1.3.0"
Export-Package: de.vogella.plugin.htmlconverter;uses:="org.osgi.framew
ork,org.eclipse.ui.plugin",de.vogella.plugin.htmlconverter.handler;us
es:="org.eclipse.core.commands,org.eclipse.core.resources,org.eclipse
.core.runtime"
我尝试过懒惰激活和热切激活,但仍然没有。真正令人困惑的是,当我调试并启动一个单独的Eclipse应用程序时它会起作用。任何想法我做错了。
是否有其他Eclipse插件可以执行某种形式的诊断并告诉我出了什么问题。
最后一点,如果我查看Eclipse错误日志,我看到没有错误。但是,如果我编辑MANIFEST.MF
并输入一些垃圾字符串,它会报告并验证MANIFEST.MF
的错误,所以我知道Eclipse会看到插件
有人可以帮忙吗?
答案 0 :(得分:7)
听起来您正在使用我的教程:http://www.vogella.de/articles/EclipsePlugIn/article.html
安装介质p2在3.4和3.5之间得到了增强。这可以解释行为的差异。听起来您可以选择使用Eclipse 3.5。我强烈建议在3.4中使用3.5作为p2是p2的第一个版本,它取代了旧的更新管理器。
答案 1 :(得分:4)
从eclipse3.4开始,你的eclipse安装中有一个新的目录dropins 见Eclipse p2
alt text http://www.jroller.com/myeclipseblog/resource/7-OpenDropinsFolder.png
尝试在那里复制插件。
同时检查illustrated by this thread,您没有定义自己的config.ini
。
当我将其更改为“
Generate a default config.ini file
”并刷新它时,它运行正常。
OP ng补充说:
它在3.5中工作,但为什么不在3.4.x ??
p2已经在3.4开发生命周期(3.4M6)的后期推出,并且起初非常有缺陷。
3.5版本的p2被认为更加稳定。
它已经提示像“Re-enable old Update Manager in 3.4.0 and disable p2 as update engine/UI”这样的错误,因为(从错误报告中提取):
- p2在Eclipse开发周期(M6)中异常公开。 社区没有机会广泛测试这样一个核心功能。
- p2的已打开错误列表对于如此大而迟的非常大 平台变更
(more then 4000,其中大多数已关闭3.5版本,但仍然......)
因此,如果你可以使用eclipse3.5,那对工作 p2功能会更好。
ng补充道:
但必须有一种在3.4.x中安装插件的方法,
您可以尝试使用 shared plugin directory 复制插件,该插件应该能够解释pre-p2和p2格式。
该公共外部目录将通过引用(对于3.4):
[eclipse]\links\myplugins.link file
content:
path=C:/my/eclipse/plugins
(对于3.5,您可以使用eclipse.ini setting,如this eclipse.ini)
尝试复制插件,尊重类似于used for a ClearCase plugin:
的目录结构 myPlugins
my.plugin.x.y.z
eclipse
features
...
plugins
...
如果你的jar已经尊重上面显示的my.plugin.x.y.z结构,你可以只复制myPlugins
目录中的jar。 (这两种方法都可以在这里尝试)