eclipse plugin编译小结

这两天一直在弄eclipse3.1.1的plug-in,现做一个小结:
1.包含的Jar文件:

org.eclipse.swt_3.1.0.jar
org.eclipse.core.runtime_3.1.1.jar
自定义的库:PluginLib
JRE System Library [jre1.5.0]
velocity-1.4.jar
velocity-dep-1.4.jar

其中,PluginLib包括了:
org.eclipse.compare_3.1.1.jar
org.eclipse.core.commands_3.1.0.jar
org.eclipse.core.resources_3.1.0.jar
org.eclipse.core.resources.win32_3.1.0.jar

org.eclipse.jdt.ui_3.1.1.jar
org.eclipse.jdt.core_3.1.1.jar
org.eclipse.jdt_3.1.0.jar

org.eclipse.jface.text_3.1.1.jar
org.eclipse.jface_3.1.1.jar

org.eclipse.osgi_3.1.1.jar
org.eclipse.text_3.1.1.jar
org.eclipse.swt.win32.win32.x86_3.1.1.jar

org.eclipse.ui_3.1.1.jar
org.eclipse.ui.ide_3.1.1.jar
org.eclipse.ui.editors_3.1.1.jar
org.eclipse.ui.workbench_3.1.1.jar
org.eclipse.ui.workbench.texteditor_3.1.1.jar
org.eclipse.ui.views_3.1.1.jar

另外,plug-in.xml的Dependencies页要包含:
org.eclipse.ui
org.eclipse.core.runtime
org.eclipse.jface.text
org.eclipse.jdt.core

org.eclipse.ui.ide
org.eclipse.ui.editors
org.eclipse.ui.workbench.texteditor_3.1.1.jar
org.eclipse.ui.views
但是,当选好Dependencies后,Eclipse会自动添加一个Plug-in Dependence Lib,它不能改。有时某些类包含在这个Lib的jar里后会提示不可访问,但我又没做限定。最后只好把这个Lib删了,自己做了个PluginLib就好了。

2.出错信息:
原来出错信息是在运行为的那个用来调试plugin最终效果的Eclipse里看的,在window->show view->Error Log
一开始不知道出了错去哪里看,现在知道了。

3.调试过程:
1)调试时发现command ( "org.vaulttec.velocity.ui.edit.goto.definition" ) 找不到,原来我起先为了做最小可运行的plugin,把原来的plug-in.xml中某些东西删了。加进来就好了:

plug-in.xml:
   <extension
         point="org.eclipse.ui.commands">
      <command
            name="%command.gotoDefinition.name"
            description="%command.gotoDefinition.description"
            id="org.vaulttec.velocity.ui.edit.goto.definition">
      </command>
   </extension>

不过command的分类它提示说过期了,就删掉了,但运行起来后有个警告。暂时不管它了。嘿~

4.VelocityColorProvider:
参照eclipse自动生成的plug-in示例,把getColor(String)改成了getColor(RGB),这样一来就不从字符串再转RGB再做为参数了,原先转的过程中用到了IPreferenceStore,在新的3.1.1架构下好像移过了,用法不同了。暂时又不知怎么用,所以改掉了。类似的情形还没改,最好是弄懂这功能移哪去了。


现在整个代码只能理解到eclipse自动生成的plug-in示例的程度,有些复杂的接口没仔细看。再说了。反正现在这个plug-in能跑起来了,毕竟是第一只小板凳嘛,要求不能太高。以后再慢慢改进。

原文地址:https://www.cnblogs.com/huqingyu/p/317757.html