如何自行处理写好的eclipse插件安装不生效
本帖最后由 anrainie 于 2013-7-23 11:31 编辑 对于eclipse插件开发的新手,经常会遇到插件写好了,拷贝到plugins或dropins文件下,但是没有生效。上网各种问,也很难找到正确的答案。 事实上,自己现场处理,会更快的得到答案,和提高自己解决问题的能力。 现在我说下一下如何应用一个插件: 1、在插件环境下测试。 选择debug按钮下的run Configuration(调试 配置),选中Argument。读一下英文,就可以明白这里是配置虚拟机和eclipse的启动参数,后面我会说明在“应用环境”下要怎么使用这些参数 <ignore_js_op> ![]() 在program arguments中加入两个参数: -console 打开控制台 -consoleLog 控制台打印Log信息 这两个都是给你调试用的,请养成使用控制台的习惯。 配置好之后,选择Plugin-in标签,如下图: <ignore_js_op> ![]() 读英文,注意Launch with,如果你是新手,推荐选择all workspace and enable target plug-in 这样就会加载所有的插件,自然包括你写的那个。 选择之后,点击下面的debug(调试)按钮 看效果。 注意!我上面强调了两次读英文,英语是编程需要的基本能力,eclipse又是一个说明很详细的IDE,事实上,你能在网上找到的大部分教程内容,都不一定比eclipse自带的Help Contents详细。养成良好的编程习惯,先把UI上提供的东西都读一遍,再决定是不是要“搜索”或者“问”。 2、在应用环境下使用通过了上一步测试的插件 要确定几点: a、你的开发环境和你的应用环境是不是一致? b、你是不是已经打包了好所有你需要的资源? 如何检查呢? 其实都是一些配置信息。主要是检查两个文件:manifest.mf和build.properties。某些特殊情况下可能还要检查plugin.xml,暂不讨论。 eclipse提供了完整的配置工具。 首先是build,看下图: <ignore_js_op> ![]() 左侧的描述说了“选择字节码构建的文件夹和文件” 就是说,你打包的时候,选择的这些文件才会被加入到jar中去。 所以,如果你添加了lib或者其他的配置文件什么的,请不要忘记在build中选上。 然后是manifest.mf。 这里声明了本插件依赖的包和插件,本插件开放的包(其中可以含有各种约束规则,暂不讨论),本插件的jre环境,基本的插件信息,等等。 这里要注意的是你的“开发环境”具备的包和插件,在你的“应用环境”上是不是具备? 主要是三个: 1、依赖的包 Require-Bundle: 2、依赖的插件 Import-Package: 3、jre版本 Bundle-RequiredExecutionEnvironment: 解决方式是:为应用环境添加上所有缺失的插件。 当然,80%的环境错误,都是版本不一致导致的 你可以尝试去掉或修改版本信息 比如Require-Bundle: org.eclipse.ui.ide;bundle-version="3.6.1" 修改为Require-Bundle: org.eclipse.ui.ide 又比如: Bundle-RequiredExecutionEnvironment: JavaSE-1.7 换成 Bundle-RequiredExecutionEnvironment: JavaSE-1.6 3、在应用环境下后台调试 当你把插件拷贝到应用环境的plugins或者dropins下面后,你再也没办法对它debug了。 如果一个插件加载不成功,它的加载信息会显示在.configuration的log文件中,且,在Help-> About Eclipse里也会有全部的已安装插件信息。 但是,这样就足够了吗? 一个插件,没有产生效果,又没有具体的报错,不知道安装好了没有,我们还有任何办法吗? 答案当然是肯定的。 我们需要利用osgi(equinox)的后台console。 记得之前我说的Eclipse启动参数-console吗? 在应用环境下我们也可以使用该参数,如果你使用的linux,我就不赘述如何添加参数了。 在windows环境下,给Eclipse执行文件创建一个快捷方式,右键属性,在“目标”里的文件后再加上一个-console参数 Eclipse就以console模式启动了,在Eclipse的splash弹出来的同时,也会弹出一个osgi后台,如下图:<ignore_js_op> ![]() 使用 ss命令可以查看所有的插件 ss后面可以写查询条件 比如 ss org.* 就是找到所有以org.开头的插件(注意,这里的名称插件名称,而非项目名) 如果能够找到你需要的插件,则你能看到该插件的ID号。 使用start [id] 命令,可以启动该插件,看看是否报错。 注意:在osgi bundle的生命周期中,started和[lazy]才表示它是可以正常使用的 在某些特别的情况下该插件没有被installed,则你需要install命令来安装它。 install命令后面的参数需要是一个完整的URL 如果不理解URL格式怎么写,请百度之。 更多console的介绍可以看这里: http://www.ibm.com/developerworks/library/os-ecl-osgiconsole/ 理解了以上,你就掌握了基本的插件调试技能。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)