PDE 動態類別路徑 FAQ

動態類別路徑是 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。 他們必須繼續使用他們自己的自我控管方法。