Используйте поле класса в 'plugin.xml' для плагина eclipse - PullRequest
1 голос
/ 04 августа 2011

В настоящее время я работаю над небольшим плагином Eclipse, и мне приходится иметь дело с классическими 'plugin.xml' материалами, такими как создание природы:

<extension
    id="aplugin.natures.MyNature.NATURE_ID.id"
    name="Sample Project Nature"
    point="org.eclipse.core.resources.natures">

Теперь в этом конкретном примере я должен где-то в моем коде плагина дать 'id' как String некоторой функции eclipse. Поэтому мне нужно создать определенный класс, например:

package aplugin.natures;

public class MyNature implements IProjectNature {
    public static final String NATURE_ID = "aplugin.natures.MyNature.NATURE_ID.id"; //$NON-NLS-1$
}

И здесь возникает моя проблема, я получил некоторую копию и вставил свой 'id' . Я должен признать, что я не очень горжусь этим.


Поэтому мой вопрос: кто-нибудь знает способ использования поля 'NATURE_ID' в классе 'MyNature' непосредственно в файле 'plugin.xml' ?.

В конце я хочу написать что-то вроде:

<extension id="${aplugin.natures.MyNature.NATURE_ID}" ... >

1 Ответ

3 голосов
/ 04 августа 2011

Это невозможно сделать по проекту.

Идея состоит в том, что ядро ​​Eclipse может загружать файлы plugin.xml для всех разрешенных плагинов / пакетов без загрузки / активации плагинов.Для разрешения приведенной выше конструкции обычно требуется, чтобы Eclipse разрешил все ссылки для класса - в данном случае MyNature, что может легко привести к активации многих других зависимых плагинов.Нехорошо.

Итак, по замыслу - все данные в plugin.xml должны быть автономными.(С возможным исключением локализованных строк).

...