2011-04-21 65 views
0

我有定義了所有必需用戶庫的「myUserLib.userlibraries」文件。作爲我開發的插件的一部分(這將創建Web項目和必需的設置),我想將該文件導入由插件創建的項目。如何從文件以編程方式導入用戶庫

是否有任何從文件導入庫的程序化方法?

回答

1

最後我得到了這個我想要的方式。我現在能夠以編程方式將用戶庫從「myuserlibs.userlibraries」文件上載到工作區首選項中。我使用了以下的eclipse插件類。

org.eclipse.jdt.internal.core.UserLibrary.class 
org.eclipse.jdt.internal.core.UserLibraryManager.class 
org.eclipse.jdt.internal.core.UserLibraryClasspathContainer.class 
org.eclipse.jdt.internal.core.UserLibraryClasspathContainerInitializer.class 

這些類有很多方法來實現這個任務。

一旦他們上傳到首選項,我也能夠以編程方式將所需的用戶庫條目添加到各自的項目(由我的插件創建)。因爲我的工作區中有大約8個Web項目,並且他們都需要在他們的類路徑容器中設置不同的用戶庫集。

1

如果您正在開發一個插件以將這些庫添加到項目類路徑中,我建議您考慮編寫一個自定義類路徑容器,而不是重新使用用戶庫工具。如果您編寫自定義容器,則項目類路徑將包含您的容器的ID,並且JDT將在運行時查詢您的代碼以獲取實際的類路徑條目列表。

這將使您無需在工作區首選項中存儲和維護庫的內容,就像您採用用戶庫方法時必須執行的操作一樣。

請參閱org.eclipse.jdt.core.IClasspathContainer類。

+0

謝謝康斯坦丁。我需要僅通過編程方式導入我的userlibraries,與我們通過首選項導入的方式相同。我不需要將它們添加到類路徑中。因爲我有數十個庫定義了我的文件,但並不是所有的項目都會使用它們。一旦導入,我有第二項任務,我需要添加必要的庫引用到各自的項目。我可以使用classpathContainer作爲我的第二部分 – Sebastian 2011-04-21 21:48:37

+0

我不認爲你瞭解什麼是classpath容器。 Eclipse用戶庫工具只是一種基於工作區首選項中維護的庫定義的類路徑容器。我建議你自己實現,因爲它可以讓你繞過將東西導入到工作區元數據中來讓你的插件工作的步驟。類路徑容器標識是一個路徑。第一部分是它的類型,但其餘部分取決於你。您可以使用容器路徑的其餘部分來告訴您在插件邏輯中內部查找的「庫」定義。 – 2011-04-21 23:48:27

+0

我不知道這個。感謝您的耐心再次解釋。我認爲這是兩回事。如果我能用IClasspathContainer實現這一點,那將會很棒。我使用classpath容器在類路徑中添加單個的.jar文件。我會按照你的建議去做,並會回覆結果。 – Sebastian 2011-04-22 13:32:28

相關問題