2012-12-11 35 views
15

我在Eclipse中遇到了有關目標定義的問題。我想在我的目標平臺定義中使用插件版本1.0.0,而在我的工作區中使用版本1.0.2的插件項目。對於我的目標定義中的所有其他插件,一切都按預期工作(我所看到的是因爲如果缺少某些內容就會標記出錯誤),但是這個特定的Eclipse並未提供給我的項目。只有插件版本1.0.2是。該插件沒有設置爲單身。爲什麼我不能訪問我的目標定義中的所有插件?

這是爲什麼,我該如何解決這個問題?


我想通了,當我關閉包含錯誤的一個項目,我可以訪問正確的版本 - 不過這是尷尬的,有另一種方式?


看來,它實際上不是一個特定於日食的問題,它通過maven/tycho在命令行上構建時也失敗。具體來說,我的目標平臺是Juno Release。插件是否是功能的一部分,但不能提供給其他軟件包?我知道插件在那裏,但tycho和Eclipse都不想讓它可用。

也許我應該說它在編譯時失敗。


雖然,正如我所說,存在的問題的解決方法,我還是想有一個「好」的解決這個問題。您可以在與目標定義一起簽出項目https://github.com/kutschkem/Jayes

您可能還需要檢查,並建立該項目第一: 混帳克隆http://git.eclipse.org/gitroot/recommenders/org.eclipse.recommenders.git

設定目標平臺後,嘗試建立一些與Jayes 1.0 .0(位於目標平臺中)而不是Jayes 1.0.2(它位於工作區中)。您也可以嘗試使用maven構建,但它不起作用。

已知的解決方法:

  1. 關閉Jayes 1.0.2項目。然後,eclipse可讓您使用Jayes 1.0.0
  2. 對於運行(OSGi)應用程序,您可以選擇加載哪些軟件包。您可以選擇的版本1.0.0手動有
  3. 使用產品定義,你可以訪問相同的運行時配置作爲解決辦法2

如果有人發現一個Maven的解決方法,我很高興知道它。

回答

7

也許你已經將你的插件設置爲單例,所以只有一個具有特定ID的包的實例。 你可以通過在你的MANIFEST.MF中刪除「singleton:= true」來改變它。

Bundle-SymbolicName: org.eclipse.xxx; singleton:=true 

或者,您可以在開始運行時從運行配置中刪除1.0.2版插件。點擊run - > run configuration打開運行配置dialgo,切換到'plugins'標籤,在這裏你可以選擇你想要使用的插件。

+0

感謝那些提示,我澄清了我的問題,關於你的答案。在運行配置中,我沒有得到只有main-Method的類的選項卡。當我嘗試添加依賴項時,這個問題已經顯示出來了,也就是說_before_我甚至運行了任何東西。 – kutschkem

+0

btw你的解決方法被添加到問題。當我有一個eclipse應用程序而不是普通的java main方法時,該選項卡顯示出來。這仍然不能解決一般問題,例如當我想用maven自動執行執行時。 – kutschkem

4

我認爲你已經嘗試了以下內容,但重新加載目標平臺可能會有所幫助。 另外,你的feature.xml文件爲該插件的版本指定了什麼?

+0

它規定了0.0.0。是的,我重新加載了目標平臺,但實際上,正如我寫的,這甚至不是一個特定於日食的問題。 – kutschkem

+0

有趣的(我的意思是plugin-feature.xml版本的東西) - 那麼如果你喜歡指定你想要的版本呢? – acostache

+0

那麼,我真的不能影響遠程存儲庫(Juno版本...)。在本地,它讓我這樣做,但它仍然標誌着插件不可用(足夠奇怪,當我關閉1.0.2項目時,這個警告甚至出現) – kutschkem

相關問題