跟我一步步构建一个完整的Eclipse插件
( 创建一个执行测试的菜单项 )
By www.coolhou.com 灰石
By www.coolhou.com 灰石
( http://blog.csdn.net/lmstone )
( LimingMail1998@yahoo.com.cn )
文档描述: 由于工作原因,也是本人的兴趣,接触到Eclipse的插件编写工作。现将一些学习笔记和心德共享出来,同大家分享。由于本人对写作向来没什么天赋(上学时,语文一直在及格与不及格的边缘徘徊),由什么错别字之类的大家谅解。对于技术上的不同见解和看法请大家讨论。 本文并非全部原创,所描述的JUnit Plugin是引用《Contributing to Eclipse》一书中的内容,文章的内容加入我本人的一些理解,所以有些地方加入了一些扩展和改变。此文算是一个读书笔书吧。 文档经历: 1. 2005-10-26 创建一个执行测试的菜单 |
导航
1. 创建一个执行测试的菜单项
1.1. 我们的计划
1.2. 要实现的功能
1.3. 步骤
1.3.1. 建立插件项目
1.3.2. 在根下建立plugin.xml
1.3.3 修改META-INF/MANIFEST.MF文件
1.3.4. 兴奋的时刻:第一次运行插件
1.4. 回顾
1.5. 前行的路标
1.6. 获取源码
1. 创建一个执行测试的菜单项
1.1. 我们的计划
l 如何增加一个动作,使其在被选中的对象的上下文菜单中出现。
1.2. 要实现的功能
1. 在“包资源管理器”中选择一个测试用例类
2. 弹出上下文菜单(就是在要测试的类中点出鼠标右键,弹出的菜单)
3. 选择“运行测试”(这是“运行测试”是我们将要加入的功能项)
4. 执行测试
5. 弹出一个对括框,显示测试用例中所有测试的执行结果。
1.3. 步骤
1.3.1. 建立插件项目
l 文件 -> 新建 -> 插件项目

(图1 - 1)
l 填入项目名称->下一步->完成

(图1 - 2)

(图1 - 3)
1.3.2. 在根下建立plugin.xml
<?xml version="1.0" encoding="gb2312"?>
<?eclipse version="3.0"?>
<plugin
id="com.coolhou.student.eclipse.junit"
name="Junit 插件"
version="1.0.0"
provider-name="COOLHOU"
class="com.coolhou.student.eclipse.junit.JunitPlugin">
<runtime>
<library name="junit.jar">
<export name="*"/>
</library>
</runtime>
<requires>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.jdt.core"/>
</requires>
<!—声明一个弹出菜单项 -->
<extension point="org.eclipse.ui.popupMenus">
<objectContribution
id="com.coolhou.student.eclipse.junit.runtest"
objectClass="org.eclipse.jdt.core.IType"
>
<action
id="com.coolhou.student.eclipse.junit.runtest.action"
label="运行测试"
enablesFor="1"
>
</action>
</objectContribution>
</extension>
</plugin>
<?xml version="1.0" encoding="gb2312"?>
<?eclipse version="3.0"?>
<plugin
id="com.coolhou.student.eclipse.junit"
name="Junit 插件"
version="1.0.0"
provider-name="COOLHOU"
class="com.coolhou.student.eclipse.junit.JunitPlugin">
<runtime>
<library name="junit.jar">
<export name="*"/>
</library>
</runtime>
<requires>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.jdt.core"/>
</requires>
<!—声明一个弹出菜单项 -->
<extension point="org.eclipse.ui.popupMenus">
<objectContribution
id="com.coolhou.student.eclipse.junit.runtest"
objectClass="org.eclipse.jdt.core.IType"
>
<action
id="com.coolhou.student.eclipse.junit.runtest.action"
label="运行测试"
enablesFor="1"
>
</action>
</objectContribution>
</extension>
</plugin>
表:1.1 声明一个弹出菜单项
plugin.xml | 描述 |
<extension point="org.eclipse.ui.popupMenus"> | 说明我们要对弹出菜单进行扩展 |
<objectContribution | 我们要扩展某个特定类型的所有对象 |
id="com.coolhou.student.eclipse.junit.runtest" | 全局惟一ID |
objectClass="org.eclipse.jdt.core.IType" | 所有被选中的IType都将拥有这一项目 |
<action | 这是一个菜单项 |
id="com.coolhou.student.eclipse.junit.runtest.action" | 全局惟一ID |
label="运行测试" | 项目的菜单中显示的字样 |
enablesFor="1" | 当且公当一个元素被选中时,才能使用这个菜单项 |
这是要特别指出的是IType是什么?Eclipse(这实际上是org.eclipse.jdt.core插件所提供的JDT)定义了一组接口,用于代表Java程序中的各种元,例如:项目,包,编译单元,类型(类和接口)。
1.3.3. 修改META-INF/MANIFEST.MF文件
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Junit 插件 Bundle-SymbolicName: com.coolhou.student.eclipse.junit; singleton:=true Bundle-Version: 1.0.0 Bundle-Activator: com.coolhou.student.eclipse.junit.JunitPlugin Bundle-Vendor: COOLHOU Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.jdt.core Eclipse-AutoStart: true |
1.3.4. 兴奋的时刻:第一次运行插件
l 启动”运行时工作台”

(图1 - 4)
l 创建一个测试项目和Java类

(图1 - 5)
l 在“包资源管理器”中选择要测试的类,弹出上下文菜单,点击“运行测试”

(图1 - 6)
l 被打击

(图1 - 7)
点击后出现提交窗口,当然这是正常的,因为我们还没有写具体的实现。
1.4. 回顾
我们为所有类型为IType的java元素贡献了一个名为“运行测试”的动作,到目前为止,我们只声明了一个菜单项,还没有实现这个运作。
1.5. 前行的路标
l 可以指定菜单项出现的位置
l 国际化
l 更精确的Contribution
本文详细介绍了构建完整Eclipse插件的步骤,以创建执行测试的菜单项为例,包括建立插件项目、创建plugin.xml、修改MANIFEST.MF文件等,还阐述了要实现的功能,如选择测试用例类、弹出菜单、执行测试并显示结果等,最后提及后续方向和源码获取。


被折叠的 条评论
为什么被折叠?



