2017-02-15 91 views
0

有没有办法通过JDT API以编程方式访问Java项目的build.properties?像IJavaProject.getRawClasspath()只是为build.properties通过JDT API以编程方式访问Java项目的build.properties

如果我有一个IProject/IJavaProject,我可以添加像这样的JDT API线(通过JDT API调用):

前:

source.. = src/ 
output.. = bin/ 

后:

source.. = src/,\ 
      xtend-gen/ 
output.. = bin/ 
+0

这是一个PDE对象,而不是JDT所以任何API不会在JDT的API去。 –

+0

那么有PDE电话这样做? – ConveniencePatterns

回答

1

这是一个PDE对象而不是JDT,因此您需要使用PDE API。关于PDE API的文档很少。

build.properties由org.eclipse.pde.core.build.IBuildModel接口描述。你得到这样使用:

IProject project = ... project ... 

IPluginModelBase base = PluginRegistry.findModel(project); 

IBuildModel buildModel = PluginRegistry.createBuildModel(base); 

可以使用

IBuildEntry entry = buildModel.getBuild().getEntry(IBuildEntry.BIN_INCLUDES); 

IBuildEntryaddToken方法似乎是增加了进入的方式获取“bin.includes”的条目。

为了节省您的成本,您需要检查模型是否是IEditableModel的实例,并调用IEditableModel.save方法。

if (buildModel instanceof IEditableModel) { 
    ((IEditableModel)buildModel).save(); 
}