Во время разработки Acceleo мы также столкнулись с этой проблемой, поскольку нам нужно позволить пользователю развертывать подключаемые модули Eclipse, расположенные в его рабочей области, в работающем экземпляре Eclipse (после этого мы также должны удалить эти подключаемые модули).Поскольку Acceleo является открытым исходным кодом, вы можете взглянуть на наш исходный код на github .
. Я не буду подробно здесь все описывать, но вы должны найти то, что вы ищете, примерно в строке 880.и после строки 752. Связанный файл - это наш служебный класс для манипулирования плагинами Eclipse в рабочей области и пакетами Eclipse в работающем экземпляре, так что вы можете найти там практически все, что нужно для решения вашей проблемы.
Smallпредупреждение: когда мы развертываем на лету плагин Eclipse, расположенный в рабочей области, мы деактивируем его plugin.xml.Поскольку большинство инструментов Eclipse просто смотрят на плагин, который в данный момент вносит свой вклад в их точку расширения, и поскольку они не слушают динамически, слушают установку / удаление плагинов Eclipse, способствующих их точке расширения (что можно сделать как this ) они могут хранить ссылки на вклады от плагинов, которые мы удалим позже, что может создать проблему.Это поведение подробно объясняется в строке 775 в первом связанном файле.
С уважением,
Стефан Бегодо