背景:
在Eclipse插件开发,自动化构建产品的过程中,当产品构建好之后,如何得知所build的插件都是build的成功且是被成功加载的。点击
Eclipse的/About Eclipse/Install Details/Plug-ins 然后能在这个页面所成功加载的插件.
但是要是开发规模仅是几个插件还是肉眼能区分的,如果插件个数很多就难弄了。遗憾的是这个页面不能导出 不能复制。只能肉眼看。当你开发的产品涉及自己开发的插件有上几百个的时候,就比较麻烦了。
解决办法
修改其源码,将这些插件名字写进文件。
如何修改
经搜索发现这个About页面是在org.eclipse.ui.workbench插件中实现的
找到相应的java类,做适当修改,重新编译,替换jar包中的class,以clean方式启,便能实现。
我们开发的产品对应 Eclipse 3.5.2
对应其源码在http://archive.eclipse.org/eclipse/downloads/drops/R-3.5.2-201002111343/eclipse-SDK-3.5.2-win32.zip
org.eclipse.ui.workbench插件 版本是 org.eclipse.ui.workbench_3.5.2.M20100113-0800.jar
其对应的源码包是org.eclipse.ui.workbench.source_3.5.2.M20100113-0800.jar
解压这个源码包导入进Eclipse
将org.eclipse.ui.workbench_3.5.2.M20100113-0800.jar中的plugin.xml文件放至工程中,将META-INF\MANIFEST.MF这个文件替换工程中相应文件
这样这个工程依赖其他插件的配置就ok了。如下图:
找到org.eclipse.ui.internal.about.AboutPluginsPage这个类
在 createControl(Composite parent) 方法中略作修改
将bundleInfos中获得的插件名称写入至log文件
修改如下
public void createControl(Composite parent) {
initializeDialogUnits(parent);
// create a data object for each bundle, remove duplicates, and include
// only resolved bundles (bug 65548)
Map map = new HashMap();
for (int i = 0; i < bundles.length; ++i) {
AboutBundleData data = new AboutBundleData(bundles[i]);
if (BundleUtility.isReady(data.getState())
&& !map.containsKey(data.getVersionedId())) {
map.put(data.getVersionedId(), data);
}
}
bundleInfos = (AboutBundleData[]) map.values().toArray(
new AboutBundleData[0]);
/**
* 将Eclipse已经加载所有插件名称排序后写入log文件
* 以方便ci集成后check
*/
List<String> allPluginsName = new ArrayList<String>(bundleInfos.length);
for(AboutBundleData aboutBundleInfo : bundleInfos) {
allPluginsName.add(aboutBundleInfo.getBundle().getSymbolicName());
}
Collections.sort(allPluginsName);
StringBuilder sb = new StringBuilder();
for(String tempPluginName : allPluginsName) {
sb.append(tempPluginName);
sb.append("\n");
}
String eclipseInsPath = Platform.getInstallLocation().getURL().getPath();
String allPluginsNameLogFilePath = eclipseInsPath + "/allPlugins.log";
File allPluginsNameLogFile = new File(allPluginsNameLogFilePath);
try {
if(allPluginsNameLogFile.exists()) {
allPluginsNameLogFile.delete();
}
Writer fWriter = new FileWriter(allPluginsNameLogFile);
BufferedWriter bfWriter = new BufferedWriter(fWriter);
bfWriter.write(sb.toString());
bfWriter.flush();
bfWriter.close();
fWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
WorkbenchPlugin.class.getSigners();
sashForm = new SashForm(parent, SWT.HORIZONTAL | SWT.SMOOTH);
FillLayout layout = new FillLayout();
sashForm.setLayout(layout);
layout.marginHeight = 0;
layout.marginWidth = 0;
GridData data = new GridData(GridData.FILL_BOTH);
sashForm.setLayoutData(data);
Composite outer = createOuterComposite(sashForm);
PlatformUI.getWorkbench().getHelpSystem().setHelp(outer, helpContextId);
if (message != null) {
Label label = new Label(outer, SWT.NONE);
label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
label.setFont(parent.getFont());
label.setText(message);
}
createTable(outer);
setControl(outer);
}
代码修改好后,clean 工程使其重新编译,到bin\org\eclipse\ui\internal\about 找到AboutPluginsPage几个class(含其内部类编译出来的class)
关闭eclipse
替换掉org.eclipse.ui.workbench_3.5.2.M20100113-0800.jar包中相应的class文件(附件中是改好的)
eclipse -clean 方式启动eclipse 即可。
--EOF--
分享到:
相关推荐
这个目录是Eclipse识别并自动加载插件的地方。完成此步骤后,重新启动Eclipse,插件就会被自动加载并生效。 3. **自定义编码风格** 这款主题插件不仅改变Eclipse的背景颜色,还可能包括对代码高亮、行号显示、括号...
当Eclipse加载完毕,插件应该已经被自动识别和安装。 7. **验证安装**:在Eclipse中,点击"Window" -> "Show View" -> "Other...",在弹出的窗口中搜索"BPMN2",你应该能看到BPMN2相关的视图和编辑器。选择并打开...
Eclipse SVN插件是开发人员在使用Eclipse IDE时用于版本控制的重要工具,它与Subversion(SVN)系统紧密集成,使得代码的版本管理和协同工作变得更加便捷。Subversion是一种开源的版本控制系统,用于跟踪文件和目录...
你可以在Eclipse的"Window"菜单中找到"Preferences"或"首选项",然后在展开的树形结构中看到"WebLogic"相关的配置选项,这表明WebLogic插件已经成功安装。 WebLogic插件提供了一系列的功能,主要包括: 1. **...
这个目录是Eclipse识别并自动加载插件的地方。 - 重启Eclipse:完成放置后,重启Eclipse,插件会自动安装并生效。 2. **主要功能**: - **版本控制**:通过SVN插件,开发者可以轻松地对项目进行版本控制,包括...
3. **查看DFS Locations**:在Eclipse的项目管理器中,应能看到名为“DFS Locations”的新视图出现,这表示插件已经成功安装。 #### 五、设置Hadoop集群位置 1. **配置环境**:通过Eclipse的菜单栏进行设置,依次...
Eclipse是一款广泛使用的开源集成开发环境(IDE),它支持多种编程语言,如Java、C++、Python等。...在实际开发过程中,你可能还需要了解Eclipse的API文档,查阅相关教程,以及加入社区讨论,以获取更多帮助和支持。
而`plugins`目录则包含了实际的插件实现,它们是Eclipse运行时加载的二进制代码。 安装过程通常涉及以下步骤: 1. 下载完成后,解压下载的压缩包,确保有`features`和`plugins`两个目录。 2. 启动Eclipse,进入...
"plugins"目录通常包含实际的插件JAR文件,这些文件会被Eclipse加载以提供特定的功能。而"features"目录则包含Eclipse特征(Feature)的描述,特征是一组相关插件的集合,可以作为一个整体安装。 安装Eclipse3.3的...
- 确保JRebel或其他热加载插件的许可证有效,以避免使用限制。 7. **总结** Java热加载Eclipse插件极大地提高了开发效率,减少了因频繁重启服务器而浪费的时间。正确选择和配置合适的插件,可以更好地利用这项...
此时,可以通过在启动Eclipse时添加`-clean`参数来清除缓存,强制Eclipse重新加载所有插件,这通常能解决大部分插件加载问题。 在实际开发中,一个常见的打包插件是`Export Wizard`,它是Eclipse自带的一个功能,...
如果放入`dropins`目录,Eclipse会自动识别并加载插件。在放置完成后,重启Eclipse,新插件就会生效,启动时间应该会有所改善。 需要注意的是,虽然这个插件声称“亲测可用”,但每个用户的环境都有所不同,因此在...
"dropins"目录是Eclipse用来自动加载插件的地方,放置在这里的插件会在Eclipse启动时自动被识别并安装。 接着,重启Eclipse,这是为了让Eclipse识别并加载新放入的插件。重启完成后,你可以通过检查“Window”菜单...
7. 重新启动Eclipse,新的插件应该已经被识别并加载。 【使用Velocity插件】 安装完成后,Eclipse会提供对Velocity模板的语法高亮、自动完成、错误检查等功能。你可以在Eclipse中创建和编辑`.vm`文件,这些文件...
确保Eclipse已经关闭,然后重新启动Eclipse,插件应该已经被自动安装并显示在服务器视图中。 接下来,进行Tomcat服务器的配置。首先,你需要在Eclipse中创建一个新的服务器实例。这可以通过依次点击菜单栏的"Window...
这意味着插件已经成功安装。 7. 现在你可以配置插件设置,如Genymotion的安装路径、SDK路径等,然后就可以在Eclipse中愉快地使用Genymotion模拟器了。 请注意,离线安装的插件版本可能不是最新的,因此可能无法...
将插件文件夹放进去后,Eclipse在启动时会自动检测并加载这些插件。重启Eclipse后,新的SVN功能就会生效。 具体步骤如下: 1. 下载适用于Eclipse的SVN插件,常见的有Subversive或Subclipse。 2. 解压缩下载的插件...
如果你使用的是Eclipse的"dropins"机制,可以直接将文件放置在该目录下,Eclipse会自动识别并加载插件。 4. **启动Eclipse**:关闭正在运行的Eclipse,然后重新启动。Eclipse会检测到新添加的插件,并在下次启动时...
接着,如果插件有更新站点,可以输入URL加载插件列表;如果没有,可以选择"Add",然后"Archive..."导入ZIP文件;最后,按照向导完成安装并重启Eclipse。 总之,Eclipse插件和IE插件在Web开发中扮演着重要角色,通过...
总的来说,Eclipse启动加速插件是提升开发效率的重要工具,它们通过内存管理优化和减少启动时加载的组件来缩短启动时间。正确配置和使用这些插件,可以让Eclipse在处理大型项目或多任务环境时更加得心应手,从而提高...