2013-03-19 57 views
2

我正在創建一個RCP應用程序。我打算提供p2更新功能。我的RCP應用程序的依賴關係在我的更新站點上丟失

例如有4個插件:A,B,C,d

插件A和B表示我的RCP應用程序的核心功能。我創建了一個名爲com.myorg.feature.core的功能。在插件選項卡中插入feature.xml,我已經添加了插件A & B.

我正在添加功能com.myorg.feature.core作爲我的RCP應用程序的產品文件中的依賴項。之後,我使用產品文件導出RCP應用程序(這裏的產品是基於特徵的產品)。

現在我已經創建了兩個更多的功能。

com.myorg.feature.featureC 
com.myorg.feature.featureD 

由於這些是我的RCP應用程序的可選功能,我希望用戶選擇是否安裝它們。所以用戶將選擇安裝新的軟件選項,這個功能將被列出。

我面對的問題是,這些插件C & D正在使用某些第三方庫,例如, BIRT,NATTABLE。因此,每次構建featureC或featureD,將其放到更新站點上,並嘗試將它們安裝到我的應用程序中時,它們會顯示依賴性失敗,如bundle missing: org.eclipse.birt.core

我回到feature.xml - > featureC - >插件選項卡 - >添加org.eclipse.birt.core並再次構建功能。但有幾次我的RCP應用程序未能安裝,並且缺少錯誤包。

是否有任何機制可以從開始確定所有必需的捆綁包?是爲我的RCP應用程序啓動更新或新安裝單元的正確方法嗎?

+0

「但是,我的RCP應用程序多次安裝失敗,錯誤包缺失」 - 您能更具體嗎?你會得到什麼錯誤? – 2013-03-22 15:03:40

+0

它說,捆綁丟失,不能繼續安裝featureC ..所以我必須去feature.xml for C添加缺少的捆綁包並再次發佈它。但是沒有任何方法可以自動計算它嗎? – 2013-03-22 15:52:17

回答

0

對於我來說,第一個問題應該是如果您真的想使用Eclipse PDE導出嚮導來提供更新。

相反,您應該爲您的項目設置無頭構建。如果您熟悉PDE(並且不會發生討厭Maven ;-),那麼Tycho可能是您的正確選擇。 (聲明:我對第谷項目的提交者,並且可能不知道所有的潛在替代品)

您可以很容易地使第谷包括在p2 repository所有的傳遞依賴:剛上tycho-p2-repository-plugin選項includeAllDependencies設置爲true

0

@Priank最好是在feature.xml中的plugins選項卡中添加所有依賴項,這只是一次性的工作。您可以從feature.xml的依賴關係選項卡計算所需的插件

相關問題