快速业务通道

发现Eclipse中未解析的插件依赖性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
se\plugins 文件夹和 <someLinkedPath>\eclipse\plugins 文件夹中同时出现。

在这种情况中,必须要确定从这两个或更多个磁盘副本中选用哪个插件。显然,我们所感兴趣的应该是最新的插件,也就是说,版本较新的插件。我们可以利用现有的一些函数来对 Eclipse 插件的版本进行比较,或者可以基于清单 4 所示的样例代码编写一个简单的函数来对插件版本进行比较。

清单 4. 比较插件版本

private PluginData getBetterVersionPlugin(PluginData pdo[]){   PluginData _pdObjs[] = pdo;   int len = pdo.length;   if(len==0)   return null;   Arrays.sort(_pdObjs,new Comparator() {   /**Compares its two arguments for order.    * Returns a negative integer, zero, or a positive integer    * as the first argument is less than, equal to, or greater than    * the second.    **/   public int compare(Object leftObj, Object riteObj) {    String leftPID = ((PluginData)leftObj).    getPluginVersion().replace(''.'', '':'');    String ritePID = ((PluginData)riteObj).    getPluginVersion().replace(''.'', '':'');    String leftID[] = leftPID.split(":");    String riteID[] = ritePID.split(":");    int maxlen = leftID.length > riteID.length ?     leftID.length : riteID.length;    for(int i=0; i<maxlen; i++){    int left = 0;    int rite = 0;    try {    left = new Integer(leftID[i]).intValue();    } catch (NullPointerException e) { left = 0; }    try {    rite = new Integer(riteID[i]).intValue();    } catch (NullPointerException e) { rite = 0; }    if(left==rite){     continue;    }else{    int bigger = left > rite ? left : rite;     if(bigger==left)     return 1;     if(bigger==rite)     return -1;    }    }    return 0;   }   public boolean equals(Object arg0) {    return false;   }   });   return _pdObjs[len-1]; }

发现Eclipse中未解析的插件依赖性(5)

时间:2011-02-08 IBM Indiver Dwivedi

在代码遍历完整个链接依赖性链之后,我们就可以使用一个树视图来直观地将其表示出来。还应该直观地指出(请参看下图中的红圈)是哪一个插件导致了加载失败。

这个搜索的结果应该类似于下图所示:

图 2. Dependency Walker Tree View

结束语

如果我们希望定位一些无法解析的插件依赖性(缺少插件或 Eclipse 由于某些原因未能加载它们),首先可以使用 Eclipse PDE Plug-in Dependencies 视图来显示插件的依赖性。如果 Plug-in Dependencies 视图没有显示我们的插件,就可能希望使用本文中介绍这个工具对所有链接插件文件夹进行自动化搜索。如果您只对某个具体的插件感兴趣,也可以对这段代码进行修改来满足您的要求。

可以从下面的 “下载” 一节获得这个工具的源代码。要浏览源代码,请展开源代码包,并将这个插件作为一个 Eclipse 项目打开。要使用这个工具,请将这个插件解压到 \eclipse\plugins 文件夹中,并执行以下操作:

在 Eclipse 中,切换到 Window > Show View > Others > DependencyWalker Category 中,并选择 All Plugins in Target-Platform 视图。

这个视图会显示在指定目标平台中出现的所有插件。选择一个插件并双击它。

Depende

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号