1

我目前正在开发一个小的 Eclipse 插件,我必须处理经典的 'plugin.xml'东西,例如创建自然:

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

现在在这个特定的例子中,我必须在我的插件代码的某个地方,将这个“id”作为一个字符串提供给一些 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' 的复制和粘贴。我必须承认我并不为此感到骄傲。

所以我的问题是,有人知道直接在“plugin.xml”文件中使用“MyNature”类中的“NATURE_ID”字段的方法吗?

最后我想写一些类似的东西:

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

1 回答 1

3

这在设计上是不可能的。

这个想法是 Eclipse 核心可以plugin.xml为所有已解析的插件/捆绑包加载文件,而无需加载/激活插件。解析上面的构造通常需要 Eclipse 解析该类的所有引用 -MyNature在这种情况下 - 这很容易导致许多其他相关插件的激活。不好。

所以 - 按照设计 - 中的所有数据都plugin.xml必须是独立的。(本地化字符串可能例外)。

于 2011-08-04T15:41:05.787 回答