2013-06-27 103 views
3

eclipse插件開發非常新。 我已經將jar項目轉換爲eclipse插件。但我真的不知道,如何使用它。一些基本的疑問,關於eclipse插件開發的疑惑

  1. 如何在我們的程序中調用插件中可用的方法?
  2. 是否應該公開所有暴露的方法,以便在我們的程序中使用它?

我的想法就像插件來總結兩個數字。然後用戶安裝插件並在此插件中調用add(x,y)方法。就像從包含的jar中調用方法一樣。

有很多教程解釋如何創建一個插件,但我沒有找到如何使用相同的。

回答

0

我覺得這是你所描述你有你想要的Eclipse的Java(JDT)用戶安裝插件的情況......

。在他們的Java項目中,你希望他們能夠使用插件中的一些Java類。

在Java中,類加載器必須在類路徑中找到類。 JDT通過「類路徑容器」管理項目的類路徑。第一個例子是當您創建一個Java項目時,JDT將添加「JRE System Library」作爲容器。您可以在Package Explorer中的項目下看到它。

另一個例子是JUnit插件。您會注意到,當您第一次向JDT項目添加JUnit測試用例時,對話框會詢問是否將JUnit庫添加到構建路徑。 (這是JUnit插件新建文件嚮導的顯式行爲。)如果您同意,您將在Package Explorer中看到「JUnit 4」容器。

又一例子:PDE擴展了JDT的功能。在創建插件項目時,PDE會根據您在插件清單中聲明的​​插件依賴關係添加它管理的「插件依賴項」容器。

用戶可以爲自己喜歡的庫創建和引用自己的類路徑容器。

但是,當然,作爲一個庫提供者,你想給他們一個像JUnit插件一樣。要做到這一點,在你的插件:

  1. 添加上JDT核心的依賴
  2. 從這個擴展點擴展:org.eclipse.jdt.core。classpathContainerInitializer

如果你想有一個嚮導頁來創建或編輯類路徑容器條目:

  1. 添加上JDT UI的依賴
  2. 從這個擴展點擴展:org.eclipse.jdt.ui.classpathContainerPage

一些插件使用嚮導頁面來定製容器(JUnit允許選擇JUnit 3或4);其他人只是使用該頁面來提供有關容器的信息。

請參閱JDT文檔主題Setting the Java build path並交叉引用您熟悉的任何示例的源代碼。

這裏是一個很好的文章:Simplify Eclipse classpaths using classpath containers

回答您的問題:

  1. 你必須將這些類添加到使用的ClasspathContainerInitializer子類的initialize方法的類路徑。
  2. 是的,您希望客戶端調用的方法必須是公共的,並且是您添加到類路徑中的類的成員。
1

你所描述的是一個普通的OSGi包,沒有Eclipse特有的功能。就新插件嚮導而言,您的「不參與UI」。從技術上講,這意味着它不需要plugin.xml

你的外部代碼感知bundle的方式就像是一個普通的jar:你可以訪問它的類,實例化它們並調用它們的方法。或者你可以調用靜態方法,就像你習慣的那樣。

OSGi提供的附加層意味着您可以識別您的捆綁包向其用戶導出哪些Java包。因此,一個公開但不駐留在導出包中的類別不能被其他包訪問(但這僅適用於嚴格模式,否則您只會得到訪問限制警告)。