2012-03-26 70 views
3

我開發了一個在Helios中工作正常的Ec​​lipse插件。我安裝了Juno,將插件jar放入dropins文件夾中,並啓動Eclipse,但插件在Juno(我的額外菜單項不顯示)中不起作用。在Helios下開發的Eclipse插件沒有在Juno中顯示

當我查看插件時,我在列表中看到了插件。我認爲它必須是某種版本問題(something like this),但是當我創建插件時,我沒有指定最大版本,只有最低版本。我注意到它沒有像其他插件那樣簽名,但我認爲這不應該阻止它的工作。

所以我打開了Juno的插件開發項目,並試圖通過「Testing」下的「啓動Eclipse應用程序」運行它。相同的結果(沒有菜單項)。我甚至刪除了最小版本(使用「屬性...」按鈕)。仍然沒有快樂。當我用Helios進行上述操作時,它可以工作(菜單項顯示)。

在我的「必需插件」中,我有org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.jdt.core,org.eclipse.core.resources,org.eclipse.ui .console,org.eclipse.jface.text,全部沒有任何最小或最大版本。當我點擊「顯示插件依賴關係層次結構」時,這些條目就會顯示出來。一切似乎都是按順序的,但我的應用似乎並沒有運行。

Plug-in Registry > (right click on my plugin) > Show Advanced

Plug-in Registry > (right click on my plugin) > Diagnose

導致沒有發現問題。

Plug-in Registry > (right click on my plugin) > Start

結果在綠色的三角形,但仍然沒有菜單項。

我甚至設置了一個功能更新站點;完全在Helios下,我創建了一個本地功能更新站點,從Helios下拉菜單中刪除了該jar文件,並從該站點安裝了該應用程序。完美工作。但是當我以同樣的方式從Juno安裝時,它顯示在插件註冊表中,但是同樣沒有菜單項。它似乎被發現,只是沒有明顯的運行(如預期的地方沒有菜單項所示)。

Extensions > org.ecliipse.ui.menus > menuContribution我在那裏看到我的菜單項,locationURI=popup:org.eclipse.jdt.ui.PackageExplorer。 Helios和Juno之間有什麼變化嗎?

更新:在一個空工作區安裝,它的工作。我安裝了單獨的Juno副本,並將其指向一個空的工作區,然後從本地功能更新站點進行安裝。結果是應用程序照常運行。雖然這可能提供了一個線索,但這不是一個「解決方案」,因爲我有太多的項目需要大量的瑣事,並且不值得走這條路線。

UPDATE2: 1)做了一個新安裝的Juno,打開一個空的工作空間中,在關閉eclipse\plugins的文件系統的eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info和列出內容朱諾,然後列出內容。兩者之間的唯一區別是以.source結尾的條目,這是預期的。 2)啓動Juno,指向我的Helios工作區副本。 Help > Install new software... > Add... > Local... > (select local feature update site) > (uncheck Group items by category)和其他完成安裝成功。3)關閉Juno並注意到只有我的插件被添加到bundles.info,並指出只有我的插件被添加到eclipse\plugins的文件系統中。換句話說,每個人都有一個額外的項目,這是我的插件。 4)開始朱諾,但我的插件菜單項沒有顯示,但所有跡象(插件診斷)表明它應該工作。 5)複製插件jar到dropins文件夾,但沒有改進。

任何更多關於接下來要嘗試的指導將不勝感激。

+0

哦,它工作在一個空的工作區。得到它了。檢查我編輯的答案。 – Fredrik 2012-03-28 08:52:35

回答

2

首先你應該檢查是否找到插件。 然後您應該檢查插件是否已解決,即是否滿足所有要求。

如果您有Eclipse的插件開發版本,那麼您可以打開插件註冊表視圖。看看你的插件是否在列表中,如果是,那麼至少已經找到它。然後右鍵單擊它,啓用高級操作,然後選擇診斷。有些要求可能沒有完成。 如果你沒有Eclipse的Plugin版本,你可以使用osgi控制檯。轉到控制檯視圖,並在視圖菜單中選擇OSGI控制檯。 運行命令ss列出所有插件,並且diag 123其中number是插件的ID以診斷它。

此外,see a previous answer to a similar question

我一直有一些serious problems放入的dropins目錄有時工作越來越插件...你可以嘗試將其直接拷貝到eclipse/plugins目錄。或者像它應該處理的那樣去做;爲其創建功能和更新站點,並從更新站點安裝插件。

編輯: 「在一個空的工作區安裝,它的工作」

哦,對了。您遇到與bundles.info文件有關的問題。請參閱this page

文件bundles.info包含當前系統中安裝的所有插件的列表。啓動時,此文件中列出的所有插件都將作爲與之一起運行的插件的集合提供給OSGi。 插件目錄或其他地方的任何額外插件都會被忽略。

現在檢查文件.metadata\.plugins\org.eclipse.pde.core\org.eclipse.equinox.simpleconfigurator中的工作區。比較兩個工作區中的文件,區別應該是你的文件。編輯第一個工作區中的文件以包含從第二個工作區的bundles.info列出插件的行。

bundles.info文件可以被認爲是更新的,但手動編輯更簡單。

+0

謝謝@Fredrik。我將你的建議合併到問題中。仍然沒有快樂,但我正在學習。 – Dale 2012-03-27 16:09:41

+0

@Dale您是否嘗試過在Juno上運行源代碼?如果您打開項目並選擇將其作爲Eclipse應用程序運行,那麼您可以在激活器類和處理該菜單的類中放置斷點,這可能會爲您提供有關正在進行的操作的一些想法。 – Fredrik 2012-03-27 21:32:37

+0

是的,我已經嘗試過。我沒有看到任何不同,但我會再試一次。 – Dale 2012-03-27 22:35:48