定制Eclipse IDE之杂症篇

上文回顾:定制Eclipse IDE之插件篇(二)

该篇将讲述在开发Eclipse 插件过程发生的疑难杂症。不谈功能,只说病症。

前言、拿哪个Eclipse作为定制的基础?

我建议是你用哪个Eclipse做开发,就使用那个Eclipse作为定制的基础,因为你的插件是在这上面开发的,决对不会出现缺少必要的依赖插件。如果觉得有些插件没必要的话,也自行删除。

 

一、插件存在缓存的现象

在开发插件的时候,有时会存在缓存了上一次运行插件结果的现象。

解决办法:

1.在run configurations的Eclipse Application里,勾选清除“工作空间”,同时把“清除之前请求确认”勾掉。

 

二、插件里plugin_customization.ini一直不生效

plugin_customization.ini里面是对Eclipse的一些全局配置。有可能你会在的透视图插件里指定自己的plugin_customization.ini,但是你会发现总是不生效。

配置如下:

<extension
   id="BingoTouch"
   point="org.eclipse.core.runtime.products">
     <product
       application="org.eclipse.ui.ide.workbench"
       name="%name">
          <property name="preferenceCustomization" value="plugin_customization.ini" />
          <property name="appName" value="BingoTouch" />
          <property name="windowImages" value="icons/eclipse16.png,icons/eclipse32.png" />
          <property name="aboutText" value="%aboutText" />
     </product>
</extension>

 

原因解析:

其实这个是取决于你的eclipse.exe下的eclipse.ini指定运行的product是什么,打开这个文件我们会看到:

-product
org.eclipse.epp.package.rcp.product

生效的只是这个product下的plugin_customization.ini

 

解决办法:

解决办法有两种,一是将指定product,指向自己插件(名称就是自己插件名 + product名)。例如:

-product
com.bingo.ide.perspective.BingoTouch

另外一种是将你要生效的那个plugin_customization.ini覆盖eclipse\plugins\org.eclipse.epp.package.rcp_4.4.2.20150219-0708 目录里的plugin_customization.ini(我是用这种方法)。

 

三、IDE的主题设置一直无效

这个原因跟第二个有些类似,你在插件设置的主题一直无效,例如:

<property
      name="cssTheme"
      value="com.appcelerator.titanium.rcp.theme.dashboard">
</property>

原因解析:

还是生效是哪个product的原因

 

解决办法:

在指定的product里的plugin.xml,将cssTheme属性值改为你想要的主题id。

 

四、导出的插件中文乱码了

插件显示中文时候乱码了,你可能在插件里面偷懒直接写中文(正常应该是写在properties文件配置的,中文用unicode编码)。

原因解析:

插件里面如果有中文的话,你没有指定编译编码。

 

解决办法:

直接在build.properties编辑器的"build.properties"编辑页中,在文件最后添加如下内容(切记两个点不能少):

javacDefaultEncoding.. = UTF-8

 

五、插件的控制台输出在mac上显示乱码

插件控制台输出在window正常,而在mac上显示乱码了。

解决办法:

在mac的eclipse.ini加上:

-Dfile.encoding=UTF-8 

 

六、第二次打开eclipse,工具栏上自己新增的图标向右偏移了

在第一次打开eclipse时候,自己新增图标还是正常显示的,当第二次以后打开eclipse时候,图标就往右偏移了。

原因解析:

这个可能有不同原因,不过我的这个情况是因为主题使用的原因。 我用了aptana的主题,但在主题的样式文件里面有

.MToolControl.TrimStack {
     handle-image: url(chrome://drag-handle?height=22&background-color=#cccccc&embossed=true);
}

里面handle-image的url无法访问,引发的问题。

解决办法:

将里面的图标下到本地,换相对路径就正常了。

.MToolControl.TrimStack {
     handle-image: url(./dragHandle.png);
}

 

七、直接运行插件生效,导出放到新eclipse没有效果

这个问题是个致命的问题,而为了这个问题,我花了两天去检查(虽然很多的尝试都是没有效果,但最终都引导到正确的路上)。

我尝试用OSGi控制台来检查问题(因为篇幅问题,我写在另一篇文章):Eclipse OSGi调试过程

发现我的插件根本没有加载到,更别谈找错误了。

 

原因解析:

在百思不得其解时候,突然想到一个问题,eclipse是不是本身认不到插件,是否有个地方配置这些插件信息。后来终于被我发现,eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
所有启动插件都在这里定义,那就是我需要将我的插件放到这里。

 

解决办法:

例如:

com.bingo.ide.perspective,1.0.0,dropins/eclipse/plugins/com.bingo.ide.perspective_1.0.0.jar,4,false

我把我的插件信息在这,果然生效了。

 

相关问题:

这出现另外一个问题,因为我的eclipse插件有90多个(别问我为什么这么多),我不可能一条条信息去定义,生成Bundles.info信息,这样太蠢了。

于是整理了一个简单的Java程序去生成。代码如下:

import java.io.File;

/**
* 插件生成后,生成Bundles.info
* @author lufeng
*/
public class BuildInfo {

     final static String exportPluginPath = "F:\\source\\bingo-touch\\ide\\release\\window_64\\eclipse\\dropins\\eclipse\\plugins\\";
     final static String pluginPath ="dropins/eclipse/plugins/";

     public static void main(String[] args) {

             File direct = new File(exportPluginPath);
             File[] files = direct.listFiles();
             for(File f : files){
                 String s = f.getName();
                 int p = s.lastIndexOf("_");
                 if(p == -1)
                      continue;
                 String name = s.substring(0, p);
                 String version = s.substring(p+1);
                 if(version != null && !"".equals(version))
                      version = version.substring(0, version.lastIndexOf("."));
                 //.jar直接拼接,文件夹形式的后边加"/"
                 if(f.isDirectory())
                     s = s+"/";
                 System.out.println(name+","+version+","+pluginPath +s+",4,false");
             }
         }

} 

 

六篇关于我这个月的Eclipse定制就到此为止,希望能帮到人。

 

本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。
本文地址 :http://www.cnblogs.com/lovesong/p/4694757.html

转载:http://www.cnblogs.com/lovesong/p/4694757.html

时间: 2024-09-19 18:00:01

定制Eclipse IDE之杂症篇的相关文章

定制Eclipse IDE之插件篇(一)

上文回顾:定制Eclipse IDE之功能篇(二) 在这篇文章中,我会将我定制eclipse用到的其他插件罗列出来. 一.汉化插件 Eclipse本身是英文显示的,我们能够通过插件汉化.  1. 选择对应的Eclipse版本. 下载地址:http://www.eclipse.org/babel/downloads.php 2. 选择需要下载的语言   3.解压后直接拷贝到Eclipse的dropins目录即可.   二.打开文件夹位置插件 点击工程或工程文件时候,可以直接打开目录位置. 下载地址

定制Eclipse IDE之插件篇(二)

上文回顾:定制Eclipse IDE之插件篇(一) 延续上一篇的插件篇,这一篇将会讲到一个最关键的插件aptana. 一.aptana插件 官方的解释我就不说了,从下面图可以看到插件提供了什么功能,列举一些我觉得重要的. 1. Contnet Assist : 代码提示 2. Editors:5种文件编辑器 3. Themes : 主题 4. Validation : 代码校验 提供这几点能力直击我eclipse前端开发的要害,就决定使用,下面是我对aptana做的一些调整.   1. 下载ap

定制Eclipse IDE之功能篇(一)

上文回顾:定制Eclipse IDE之界面篇   这一篇文章将记录一些Eclipse插件拓展(extension),简单讲述常用拓展的用法,但可能不会那么详细. 我的主要插件的拓展如下:   一.org.eclipse.ui.startup 这一个拓展可以说很关键,他可以让我们在eclipse启动时候做一些事件(之后很多小功能东西依靠它做的). XML配置: <extension point="org.eclipse.ui.startup"> <startup cla

定制Eclipse IDE之界面篇

为什么要定制IDE?      在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发工具(IDE).调试工具.      我在公司里面做的是一个hybrid框架,而一个配套的IDE是比不可少的,主要用来开发HTML5.这个IDE可以算是框架东西的聚合,可以将在线文档.工程模板.打包调试等功能都揉合在IDE.当我们提供给开发者东西时,我们只需要提供一个IDE,里面已经包含所有框架的东

定制Eclipse IDE之功能篇(二)

这一篇文章将记录一些Eclipse插件小功能,Smart but Useful.   一.设置工作空间 文本文件的编码   解决办法: 在org.eclipse.ui.startup拓展里执行这一句(只需执行一次): ResourcesPlugin.getPlugin().getPluginPreferences().setValue("encoding", "UTF-8");   二.默认显示行号   解决办法: 在org.eclipse.ui.startup拓展

在Windows系统和Eclipse IDE集成环境下使用Java进行HBase客户端编程

本文以HBase 0.90.2为例,介绍如何在Windows系统,Eclipse IDE集成环境下,使用Java语言,进行HBase客户端编程,包含建立表.删除表.插入记录.删除记录.各种方式下的查询操作等. 1. 准备工作 1.下载后安装jdk包(这里使用的是jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008): 2.下载eclipse,解压到本地(这里使用的是eclipse-java-helios-SR2-win32): 3.下载HBase包,解压

使用定制Eclipse信息中心为IT解决方案编制文档,第2部分

第2部分: 提升您捕捉和重用内容的能力 概述 在 使用定制 Eclipse 信息中心为 IT 解决方案编制文档,第 1 部分:创建您的第一个信息中心 中,您创建了自己的第一个解决方案信息中心,内含一个文件.在掌握了基础知识后,您就可以开始学习加速内容库内的文档的积累的技巧了,首先要做的是导入一个满载内容的示例解决方案信息项目. 从另外一个工具箱的用户导入内容 积累内容的第一种快捷途径是导入由其他用户创建的解决方案信息项目.若您的团队中有任何人捕捉到内容,那么团队中的所有人均可重用此内容.导入一个

《Java和Android开发实战详解》——2.4节Eclipse IDE的项目管理与使用

2.4 Eclipse IDE的项目管理与使用 Java和Android开发实战详解 一个Eclipse的工作空间可以同时拥有多个项目,在Eclipse IDE可以切换不同的工作空间,对于已有的Java项目或Java程序文件,我们可以直接导入到目前打开的工作空间或项目. 2.4.1 切换工作空间 step01Eclipse的工作空间中可以新增项目,但不能打开非此工作空间的其他项目,不过,我们可以将当前工作空间切换成其他工作空间.例如,本书每一章的范例都对应有一个工作空间,我们可以在打开第2章工作

ubuntu-Ubuntu Eclipse IDE for C/C++ 更改工作空间之后出错了,应该怎么办?

问题描述 Ubuntu Eclipse IDE for C/C++ 更改工作空间之后出错了,应该怎么办? 14:25:25 **** Incremental Build of configuration Debug for project LinearLinkDemo1 **** make all make: 没有什么可以做的为 `all'. 解决方案 仔细检查一下相关环境之类的,相信您一定能够解决!