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

2008-02-23 08:10:04来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



  清单 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]; 

  

} 


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

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

  图 2. Dependency Walker Tree View


  结束语

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

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

  1. 在 Eclipse 中,切换到 Window > Show View > Others > DependencyWalker Category 中,并选择 All Plugins in Target-Platform 视图。
  2. 这个视图会显示在指定目标平台中出现的所有插件。选择一个插件并双击它。
  3. DependencyWalkerTreeView 会显示您所选择的插件的所有依赖性。完成之后,请关闭这个视图。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:提升JSP应用程序七大绝招

下一篇:关于Html嵌入打成jar包的Applet方法