在'plugin.xml'中使用类字段作为eclipse插件

时间:2011-08-04 15:19:54

标签: java eclipse eclipse-plugin plugin.xml

我目前正在开发一个小的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' 的复制和粘贴。我必须承认,我并不为此感到自豪。


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

最后我希望写下这样的内容:

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

1 个答案:

答案 0 :(得分:3)

这在设计上是不可能的。

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

所以 - 按设计 - plugin.xml中的所有数据都必须是自包含的。 (可能除了本地化字符串)。