2014-02-20 43 views
1

我正在通過使用Eclipse built-in p2 director application開發Node.js script to install Eclipse plugins。在某些情況下,p2-director無法更新功能。Eclipse p2導演應用程序無法更新功能

D:\Workspaces\Nodeclipse-DEV\nodeclipse-1\org.nodeclipse.ui\templates>node nodeclipse-install.js install -repository jar:file:/D:/Workspaces/Nodeclipse-DEV/nodeclipse-1/org.nodeclipse.site/target/org.nodeclipse.site-0.10.0-SNAPSHOT.zip!/ maven 
Nodeclipse CLI Installer (Eclipse Plugin Manager epm) 
starting eclipsec -nosplash -application org.eclipse.equinox.p2.director -repository jar:file:/D:/Workspaces/Nodeclipse-DEV/nodeclipse-1/org.nodeclipse.site/target/org.nodeclipse.site-0.10.0-SNAPSHOT.zip!/ -installIU org.nodeclipse.enide.maven.feature.feature.group -tag org.nodeclipse.enide.maven.feature.feature.group -vmargs -Declipse.p2.mirrors=false 
Installing org.nodeclipse.enide.maven.feature.feature.group 0.10.0.201402180840. 

Installation failed. 

Cannot complete the install because of a conflicting dependency. 
Software being installed: Enide Maven 0.10.0.201402180840 (org.nodeclipse.enide.maven.feature.feature.group 0.10.0.201402180840) 
Software currently installed: Enide Maven 0.10.0.201402170319 (org.nodeclipse.enide.maven.feature.feature.group 0.10.0.201402170319) 
Only one of the following can be installed at once: 
    Enide Maven 0.10.0.201402180840 (org.nodeclipse.enide.maven.feature.feature.jar 0.10.0.201402180840) 
    Enide Maven 0.10.0.201402170319 (org.nodeclipse.enide.maven.feature.feature.jar 0.10.0.201402170319) 
Cannot satisfy dependency: 
    From: Enide Maven 0.10.0.201402170319 (org.nodeclipse.enide.maven.feature.feature.group 0.10.0.201402170319) 
    To: org.nodeclipse.enide.maven.feature.feature.jar [0.10.0.201402170319] 
Cannot satisfy dependency: 
    From: Enide Maven 0.10.0.201402180840 (org.nodeclipse.enide.maven.feature.feature.group 0.10.0.201402180840) 
    To: org.nodeclipse.enide.maven.feature.feature.jar [0.10.0.201402180840] 
Application failed, log file location: E:\Eclipse\Enide-Studio-2014-try2-win64\eclipse\configuration\1392717353881.log 

eclipsec process exit code 13 

我也試過路過都.feature.jarfeature.group

eclipsec -nosplash -application org.eclipse.equinox.p2.director -repository jar:file:/D:/Workspaces/Nodeclipse-DEV/nodeclipse-1/org.nodeclipse.site/target/org.nodeclipse.site-0.10.0-SNAPSHOT.zip!/ -installIU org.nodeclipse.enide.maven.feature.feature.group -tag org.nodeclipse.enide.maven.feature.feature.group -vmargs -Declipse.p2.mirrors=false 

這可能與以下事實:.maven功能包括.maven.common插件。其他功能也使用插件.common
但是,這種情況也會發生在沒有共享依賴關係的其他功能上。 p2導演幫助頁面沒有指定邏輯,也沒有提供參考。

回答

4

在p2導演級別上,沒有「更新」操作。相反,你需要告訴導演都「卸載」和「安裝」的IU要進行更新:

eclipse -application org.eclipse.equinox.p2.director -uninstallIU org.nodeclipse.enide.maven.feature.feature.group -installIU org.nodeclipse.enide.maven.feature.feature.group -repository ... 
+2

不知插件設置將被保留,如果這將是原子操作,也就是說,如果安裝失敗,則不應應用卸載... –

+2

p2具有提交/回滾邏輯,因此操作應該是原子操作。 – oberlies

+0

您可以使用'IProvisioningAgent'和'org.eclipse.equinox.p2.operations.UpdateOperation'來更新p2功能(在任何配置文件中),但它不作爲命令行工具公開。 –