如何加载eclipse插件

时间:2010-02-12 11:37:47

标签: java eclipse

我最近开发了一个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会看到插件

有人可以帮忙吗?

2 个答案:

答案 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。 (这两种方法都可以在这里尝试)