動態類別路徑是 PDE 在 Eclipse 3.0 中為外掛程式計算建置路徑的方法。
問:什麼是類別路徑穩定性?
答:類別路徑穩定性是一種類別路徑變更的測量尺度,測量根據開發人員所制定的自我控管選項。
觀念上,不論工作區內程式碼專案完整性如何,類別路徑都不應變更。
二進位專案的自我控管,其類別路徑穩定性相當良好,其中所有的類別路徑只含有專案參照。
外部外掛程式自我控管的類別路徑穩定性就沒這麼好了。
不過它們在外部程式庫的本端安裝位置還算穩定,
只是對所有小組成員來說,作為程式碼專案用的外掛程式清單必須保持不變,
才能透過儲存庫來共用外掛程式。
自 2.0 版以來,在使用外部外掛程式的情況下,加到檔案系統外掛程式位置的外掛程式版本,其類別路徑穩定性已經大不如前。
問:如果二進位專案能夠提供更好的類別路徑穩定性,何不固定採用它們呢?
答:只要匯入的外掛程式數目沒有大到不可收拾(許多),不妨採用匯入二進位專案的自我控管。
但如果是具有大量外掛程式的大型產品,就最好不要採用大規模匯入的方式。
一般說來,它們開發人員自我控管的範圍,只有少數的程式碼專案、少數直接相關的二進位專案,
以及其他所有的項目(外部外掛程式)。
從純理論的角度來看,只不過為了能夠編譯少數的程式碼專案,就不斷匯入許多的外部外掛程式,看起來似乎有點浪費時間和資源。
問:我認為(二進位專案/外部外掛程式)自我控管方法比較好。
如果我們一起合作的話,我的小組會有什麼問題?
答:Static 類別路徑(不管是使用二進位專案還是外部外掛程式)不只限用您所選擇的自我控管方法,
而且還強迫其他所有人都要採用它。
問:什麼是動態類別路徑?
答: 動態類別路徑是一種 PDE 特性,
它是利用 JDT 類別路徑儲存器技術,動態計算外掛程式專案類別路徑中,與外掛程式相依關係有關的那個部分。
動態類別路徑的解析作業必須「適時」執行,而且必須保持最新的工作區狀況。
甚至,類別路徑解析的動態本質,可以幫助 PDE 適應變更,而且不管您選擇哪一種自我控管方法,其類別路徑一定不會錯。
問:動態類別路徑的類別路徑穩定性是指什麼?
答:最終目標。
由於必要外掛程式的所有項目,都換成同一個類別路徑儲存器項目,因此您的類別路徑一定是一樣的。
問:動態類別路徑對我有什麼幫助?
答:有了動態類別路徑之後,就不必再管自我控管樣式了。
如果是二進位專案,動態類別路徑會採用專案參照。
如果不是,則採用外部外掛程式 JAR。
在新增或移除二進位專案時,動態類別路徑會追蹤變更和適應的情形。
您不必再更新類別路徑。
此外,其他想要從 CVS 取出並且編譯專案的小組,即使不用您的個人自我控管樣式,同樣可以做到這一點。
問:PDE 核心正在解析動態類別路徑,這是不是表示我得仰賴 PDE?
答:可以這麼說。
由於類別路徑是動態的,因此類別路徑經常在改變,
而不是寫在 .classpath 檔中(大致上是如此,對不對?). 不過想想這一點:PDE 具有更準確的演算法,可以計算類別路徑,讓結果更接近執行時期狀況。
JDT 編譯器在開發時所「看到」的,應該就是最接近類別載入器在執行時期所看到的。
多數時候,PDE 核心比你自己更能夠讓類別路徑保持在最新狀態。
如果您需要以手動方式操作類別路徑才能編譯,很可能是您的設定出了什麼問題,
您的外掛程式應該也不會正確執行(SWT 小組發生異常狀況)。
問:我的小組專門使用二進位專案來進行自我控管。
如果我切換到動態類別路徑的話,會失去什麼東西嗎?
答:不會。
動態類別路徑不會指定您自己選擇的自我控管安排。
只會就給定的環境定義,解析您的外掛程式相依關係。
如果您繼續匯入外部外掛程式作為二進位專案的話,動態類別路徑會像之前一樣,解析為專案參照。
問:啟動動態類別路徑時,需要準備什麼嗎?
答:只需要更新所有您的 2.1 外掛程式類別路徑一次。您會注意到,類別路徑現在都比較短,而且所有的相依外掛程式參照,現在都換成一個儲存器項目。
您可以繼續工作。
不過,一定要把程式碼專案移入儲存庫中,包括更改後的 .classpath 檔在內。
問:我有額外的類別路徑項目,可以編譯我的 Ant tasks/servlets/JSP。
答:在計算類別路徑時,PDE 會考量到 build.properties 檔的 'jars.extra.classpath' 內容。
如果您的建置設定沒錯,PDE 所產生的類別路徑也會是正確的。
問:如何操作動態計算的類別路徑項目?
答:發生不太可能發生的事件時,必須操作動態類別路徑項目,
您可以從「內容 > Java 建置路徑 > 程式庫」標籤執行這個動作。
展開「外掛程式相依關係」節點並在該處操作項目。
問:針對程式庫所計算的項目中,有的並沒有附加程式碼。
我能夠以手動方式加上它嗎?
答:PDE 會為大部分的程式庫計算程式碼附件。
有時候,如果程式碼 zip 檔沒有依照命名慣例,自動程式碼附件也有可能會失敗。
您可以用手動方式,在建置路徑內容對話框內,為這些項目附加程式碼。
問:下次當 PDE 動態計算類別路徑時,我的手動程式碼附件會被消除嗎?
答:不會。
只要程式庫路徑不變,PDE 便會持續追蹤這些手動案例,並且在動態計算之後重新套用。
問:我是一個 SWT 開發人員。
我能夠使用動態類別路徑嗎?
答:很抱歉,不行。
SWT 小組具有唯一的自我控管設定,各種環境的類別路徑都儲存在儲存庫中,
並且根據他們所使用的平台,在專案中重新命名為 .classpath。
他們必須繼續使用他們自己的自我控管方法。