Приложение директора Eclipse p2 не может обновить функцию

Я разрабатываю скрипт Node.js для установки плагинов Eclipse с помощью Встроенное в Eclipse приложение управления p2. И в некоторых случаях p2-director не может обновить функции.

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.jar, так и feature.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 не определяет логику и не дает ссылок.


person Paul Verest    schedule 20.02.2014    source источник


Ответы (1)


На уровне директора 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 ...
person oberlies    schedule 24.02.2014
comment
Интересно, сохраняются ли настройки плагина и будет ли это атомарной операцией, т.е. если установка не удалась, то деинсталляцию применять не следует... - person Paul Verest; 24.02.2014
comment
p2 имеет логику фиксации/отката, поэтому операции должны быть атомарными. - person oberlies; 25.02.2014
comment
Вы можете обновить функцию p2 (в любом профиле) с помощью IProvisioningAgent и org.eclipse.equinox.p2.operations.UpdateOperation, но она не отображается как инструмент командной строки. - person Jarek Przygódzki; 19.08.2015