Как программно установить плагин Eclipse из Eclipse? - PullRequest
6 голосов
/ 05 октября 2009

Я хочу создать автоматизированный установщик для плагина Eclipse (то есть не через «Менеджер обновлений»). Мой сценарий прост: пользователь закрывает Eclipse, помещает загруженный JAR-файл в папку dropins, запускает Eclipse, а остальная часть процесса автоматизируется.

В более старых версиях Eclipse, до эры P2, Eclipse имел (все еще имеет) класс с именем InstallCommand, который можно использовать для установки модулей на текущую работающую платформу.

Хотя это все еще работает в Eclipse 3.4 и 3.5, оно не работает должным образом: наиболее заметно, что установленные таким образом плагины не могут быть автоматически удалены (они недоступны).

JavaDoc утверждает, что InstallCommand устарела и должна быть заменена альтернативой P2. Однако я не мог найти подходящий инструмент для работы. Существует P2 Director , но он создан для запуска в качестве отдельного приложения из командной строки. Можно вызвать его из Eclipse, но он действительно не предназначен для этого. Например, мониторинг прогресса и отчеты об ошибках не работают должным образом.

Кто-нибудь знает хорошую альтернативу для этого?

Спасибо, Zviki

Ответы [ 3 ]

1 голос
/ 05 октября 2009

Dropins кажется очень близким к тому, что вы хотите, особенно если они просто загружают файлы JAR без связанных метаданных (т. Е. Метаданные должны быть сгенерированы автоматически).

Вы можете определить вторую область дропинов, чтобы управлять собой. Взгляните на ProfileSynchronizer в org.eclipse.equinox.p2.reconciler.dropins, в частности, на метод createProfileChangeRequest. Я ожидаю, что поведение удаления, которое вам не нравится, является результатом добавления свойства IInstallableUnit.PROP_PROFILE_LOCKED_IU.

Дропины сверяются при запуске, смотрите p2.reconciler.dropins Activator.watchDropins (), вы можете сделать то же самое из своего собственного пакета, чтобы посмотреть другую папку.

0 голосов
/ 20 марта 2012

Согласно информации в ошибке 311590 1 , на которую есть ссылка в комментарии об устаревании InstallCommand, альтернативой может быть использование операций P2 2 , 3 .

0 голосов
/ 05 октября 2009

Предлагаю развернуть ваш плагин как исполняемый JAR. Установщик в JAR должен запросить каталог установки Eclipse и распаковать плагин в нужном месте (плюс еще несколько проверок при необходимости).

При желании можно добавить небольшой плагин "сторожевой таймер", который не сильно зависит и просто проверяет, правильно ли загружается ваш основной плагин, и отображает полезное сообщение об ошибке, которое пользователь может отправить вам по электронной почте для поддержки.

...