我目前正在开发一个小的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'字段的方法/ em>文件?。
最后我希望写下这样的内容:
<extension id="${aplugin.natures.MyNature.NATURE_ID}" ... >
答案 0 :(得分:3)
这在设计上是不可能的。
这个想法是Eclipse核心可以为所有已解析的插件/包加载plugin.xml
文件,而无需加载/激活插件。解决上面的构造通常需要Eclipse来解析类的所有引用 - 在这种情况下为MyNature
- 这很容易导致许多其他依赖插件的激活。不好。
所以 - 按设计 - plugin.xml
中的所有数据都必须是自包含的。 (可能除了本地化字符串)。