Я пытаюсь применить патч к существующему плагин с использованием фрагмента плагин, как описано здесь:Как исправить плагин eclipse с помощью плагина фрагмента и развернуть его в своем продукте eclipse?
Steps to use Fragments to patch a plug-in - Eclipsepedia
Патч к хост-плагин включает в себя замену одного файла класса с обновленным файлом класса , Но я не понимаю эту концепцию в разделе Измените настройки манифеста Host Host шаги 5) - 11). Здесь он инструктирует вас изменить хост-модуль. Я думал, что вся идея в том, что вам не нужно касаться плагина хоста - его фрагмент, который вы развертываете, добавляет патч?
Мой продукт состоит из платформы eclipse и функций org.eclipse.cdt плюс мои собственные плагины, которые используют cdt. Это плагин org.eclipse.cdt.core, который я хотел бы установить.
Я выполнил шаги в вики-затмении и создал проект фрагмента, содержащий пакет и класс, который я хочу установить в плагин хоста. Я построил это в maven, и когда я запускаю этот продукт, я вижу, что плагин моего фрагмента активен, но класс, который он содержит, не вызван; исходный класс плагина хоста.
Я предполагаю, что проблема заключается в том, что модифицированный хост-плагин не находится в моем развернутом продукте. В руководстве по фрагментам нет каких-либо шагов по рекомендации по развертыванию плагина хоста, и я не уверен, как/почему это необходимо.
(Я использовал патч-функцию успешно в прошлом для такого рода вещей, но только создан с использованием PDE - я не мог получить свой патч для функций, основанный на maven - вот почему я изучаю использование фрагментов, чтобы увидеть, могу ли я заставить их строить под maven.)
UPDATE *: Я создаю свою сборку с помощью плагина Tycho для Maven Tycho - Building Eclipse plug-ins with maven.
Благодарим за ссылку на «OSGi Core Release 5 Specification». Это было полезным чтением.
Итак, если мое понимание верное, фрагмент может накладывать свой класс поверх плагина хоста, если плагин хоста уже был «подготовлен» для исправления фрагментом. Это включает в себя модификацию манифеста плагина хоста. В частности: 1. добавьте новую библиотеку и переместите ее выше '.' пакет. Удалите эту библиотеку из свойств сборки; библиотека является просто ссылкой и не должна создаваться плагином хоста. + добавить Eclipse-ExtensibleAPI: true для файла manifest.mf + bump номер версии.
В моем случае, кажется, если бы я захотел исправить плагин org.eclipse.cdt.core, используя фрагмент, мне пришлось бы доставить подготовленную версию плагина org.eclipse.cdt.core плюс плагин моего фрагмента ,
*: не уверен в ответе на этикет; не имеют достаточной репутации, чтобы делать много вещей. Поле комментариев принимает только небольшое количество символов.
Конечно, необходимо включить модифицированный хост-модуль. Поскольку я не использую maven, я не знаю, как вы это сделаете. –
Я думаю, что ты прав. Однако мне удалось использовать фрагмент для патча SWT (https://www.eclipse.org/swt/faq.php#specifyxulrunner) без изменения плагина хоста. Я ожидаю, что это связано с тем, что плагин SWT уже ожидает исправления? – betamax