Удаление (устаревшего) фрагмента Eclipse во время обновления

У меня есть фрагмент, который устарел, и я хотел бы создать обновление, удаляющее этот фрагмент. Я догадался, что правильно будет рассматривать фрагмент как связку, поэтому я добавил следующее в свой файл p2.inf плагина, содержащий действия установщика:

instructions.install = \
    uninstallBundle(bundle:com.iar.cdt.arm.debugger.drivers.win32); \
    uninstallBundle(bundle:com.iar.ide.debugger.kernel.win32)

instructions.install.import \
    org.eclipse.equinox.p2.touchpoint.eclipse.uninstallBundle

Но когда установка близится к завершению, я получаю следующую ошибку:

An error occurred while installing the items
session context was:(profile=SDKProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.iar.installer.arm 0.12.0.v201110251455, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.UninstallBundleAction).
No matching artifact found for: com.iar.cdt.arm.debugger.drivers.win32.
No matching artifact found for: com.iar.cdt.arm.debugger.drivers.win32.

Нужно ли удалять весь плагин хостинга?


person JesperE    schedule 25.10.2011    source источник


Ответы (1)


Попробуй это

artifacts.0.classifier=osgi.bundle
artifacts.0.name=com.iar.cdt.arm.debugger.drivers.win32
artifacts.0.version=<the version of your fragment>

instructions.install = \
    uninstallBundle(bundle:${artifact})
person Kane    schedule 26.10.2011
comment
Нужен ли оператор instructions.install.import? - person JesperE; 26.10.2011
comment
... также могу ли я указать диапазон версий? Я хочу удалить любую версию фрагмента. - person JesperE; 26.10.2011
comment
@JesperE, instructions.install.import может быть необязательным. Вы не можете использовать диапазон версий, артефакт IU должен быть каноническим. - person Kane; 26.10.2011
comment
Что делать, если фрагмент не установлен? В дикой природе существует как минимум 4 различных версии фрагмента, и мне нужно, чтобы он мог изящно удалить любую версию, установленную пользователем. - person JesperE; 26.10.2011
comment
Как насчет выпуска нового пакета хостов с увеличенной основной версией, если ваши фрагменты зависят от своего хоста с диапазоном? - person Kane; 27.10.2011
comment
Не уверен, что понимаю. Приведет ли увеличение основной версии пакета узла к удалению любого вложенного фрагмента? Я думал, что фрагменты вели отдельную жизнь от своих узловых связок. - person JesperE; 27.10.2011
comment
Да. Фрагмент может зависеть от узла узла в диапазоне [1.0.0,2.0.0). - person Kane; 27.10.2011
comment
Если ваш фрагмент одноэлементный, установка более высокой версии приведет к удалению старых версий. - person Kane; 27.10.2011
comment
Ok. Позвольте мне провести еще несколько экспериментов и вернуться. - person JesperE; 27.10.2011
comment
К сожалению, фрагменты, которые были выпущены, не имеют верхнего предела версии. Таким образом, выпуск нового пакета хостов с приращением версии не будет работать. - person JesperE; 02.11.2011