2014-02-20 47 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功能(在任何配置文件中),但它不作为命令行工具公开。 –