国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

發(fā)現(xiàn) Eclipse 中未解析的插件依賴性

2019-11-18 11:25:50
字體:
供稿:網(wǎng)友
友情推薦:java集成開工具專區(qū) 編程教程專區(qū)

  試圖定位無法解析的插件依靠性是件緊張而又耗時的事情。激活每個插件都要依靠于很多其他插件,這些插件又會依靠于其他更多插件。假如 Eclipse 無法加載這個長長的鏈條中的某個插件,那么手工查找出現(xiàn)問題的到底是哪個插件可能會比原計劃所花費的時間和精力都要多。假如您希望有一種方法可以自動實現(xiàn)這種插件依靠性的檢測,就請閱讀本文。

  碰到的問題

  假設(shè)我們希望在 Eclipse 中使用一個特定的插件,并已經(jīng)執(zhí)行了所有必須的操作,將其包含到插件的 manifest 文件中,并將其聲明為一個依靠文件。但是系統(tǒng)并沒有加載這個插件,這樣我們就會被困在這里了,軟件開發(fā)就無法繼續(xù)進展下去了。

  聽起來非常熟悉嗎?假如是這樣,那么您可能早已花費了很多時間和努力來查看很多 plugin.xml 文件,從而查明 Eclipse 可能沒有加載哪個特定的插件。還可能已經(jīng)嘗試使用了 Eclipse PDE 項目提供的 Plug-in Dependencies 視圖,此時您會發(fā)現(xiàn)這個視圖的唯一工作不過是顯示已經(jīng)成功加載的插件而已。不幸的是,有問題的插件很可能并不屬于成功加載的插件。

  要確定 Eclipse 沒有找到或加載哪個特定的插件,我們應(yīng)該做些什么呢?我們不用手工遍歷每個 plugin.xml 文件,而是考慮自動實現(xiàn)這種搜索功能。要自動進行搜索,我們需要了解 Eclipse 是如何保存自己的插件的,以及如何發(fā)現(xiàn)到保存在磁盤上的其他插件的鏈接。基于這些知識,我們可能會希望編寫自己的代碼來創(chuàng)建一個插件依靠性遍歷程序,或者使用在本文中給出的這個通用的 Dependency Walker 插件。本文的 “下載” 一節(jié)給出了這個例子的源代碼。

  開始:理解插件依靠性和 Eclipse 的插件鏈

  插件依靠性

  Eclipse 插件是提供了其他插件可以使用的功能的軟件模塊。假如插件 A 需要插件 B 才能正常工作,那么我們就說 A 依靠于 B。這種依靠性還意味著,除非插件 B 已經(jīng)成功加載了,否則插件 A 就不能正常工作。有時候,插件 B 可能還會依靠于插件 C、D、E,令人更不爽的是,這些插件每個都可能會依靠于其他插件。這種依靠鏈很輕易形成數(shù)百個插件相互鏈接在一起。毫無疑問,假如這個鏈條中的任何一個插件不能成功加載,那么依靠它的插件就可能會出現(xiàn)問題。

  插件 manifest 文件 plugin.xml 描述了每個插件。這個 XML 文件中有一節(jié)聲明了對于其他插件的依靠性或需求。在清單 1 中,plugin.xml 文件中使用黑體表示的一節(jié)就聲明了這種依靠性。

  清單 1. plugin.xml 文件
 <?xml version="1.0" encoding="UTF-8" ?> <?eclipse version="3.0"?> <plugin id="org.eclipse.draw2d" name="Draw2d" version="3.0.0"  
  注重嵌入在 <requires> </requires> 節(jié)中的 <import plugin="plugin id"/> 聲明。清單 1 的例子說明這個插件 ID org.eclipse.draw2d 依靠于 ID 為 org.eclipse.swt 和 org.eclipse.core.runtime 的插件。

  插件鏈

  當我們在 Eclipse 中使用 Java? 技術(shù)平臺來開發(fā)軟件時,系統(tǒng)實際上根據(jù)所選擇的目標平臺對源代碼進行編譯。可以在 Window > Preferences > Plug-in Development > Target Platform 中指定目標平臺的位置。這個目標平臺在 <targetPlatform>/eclipse 中有自己的一個 Eclipse 副本。要為代碼解析這些依靠性,請從兩個地方查找是否存在所需要的插件:
  1. <targetPlatform>/eclipse/plugins 文件夾中的 Eclipse 插件
  2. <targetPlatform>/eclipse/links 文件夾中 .link 文件所指向的鏈接插件
  程序員通常會將第二個地方稱為 links 文件夾。這個 links 文件夾中包含 0 個或多個文件,文件名通常都是以 “.link” 擴展名結(jié)尾。這些文件中包含了一些鏈接信息,可以使用這些信息定位在磁盤上哪些地方可以找到鏈接插件。

  每個 .link 文件都有一個要害字-值對,其格式為 path=location。(例如,links 文件夾 C:/eclipse/links 中就可能會有很多 .link 文件,其中一個文件的名字可能為 com.ibm.indiver.dependencywalker.link。這個文件中唯一的一行可能類似于 path=c:/myPlugins/dependencyWalker)。這個 .link 文件會將 Eclipse 引導到指定的位置,并在 /eclipse/plugins 文件夾中尋找更多的可用插件。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 剑河县| 抚顺市| 青海省| 安康市| 沙坪坝区| 兴义市| 五原县| 怀集县| 房山区| 上饶市| 大化| 朝阳县| 陇西县| 河北区| 丽江市| 墨玉县| 普安县| 方正县| 海淀区| 图们市| 靖江市| 乐安县| 惠水县| 邯郸县| 长治市| 长葛市| 秦安县| 太仆寺旗| 张家界市| 阜新| 绥阳县| 高台县| 洪湖市| 河池市| 五指山市| 兴和县| 佛教| 呼图壁县| 新干县| 井冈山市| 井冈山市|