通过 JDT API 以编程方式访问 Java 项目的 build.properties
Programmatically accessing build.properties of a Java project through JDT API
有没有办法通过 JDT API 以编程方式访问 Java 项目的 build.properties
? IJavaProject.getRawClasspath()
之类的东西只是为了 build.properties
?
如果我有 IProject
/IJavaProject
,我可以像这样添加一行 JDT API(通过 JDT API 调用):
之前:
source.. = src/
output.. = bin/
之后:
source.. = src/,\
xtend-gen/
output.. = bin/
这是一个 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);
您可以使用
获取'bin.includes'的条目
IBuildEntry entry = buildModel.getBuild().getEntry(IBuildEntry.BIN_INCLUDES);
IBuildEntry
的addToken
方法好像是添加到词条的方法
要保存您需要检查模型是 IEditableModel
的实例并调用 IEditableModel.save
方法。
if (buildModel instanceof IEditableModel) {
((IEditableModel)buildModel).save();
}
有没有办法通过 JDT API 以编程方式访问 Java 项目的 build.properties
? IJavaProject.getRawClasspath()
之类的东西只是为了 build.properties
?
如果我有 IProject
/IJavaProject
,我可以像这样添加一行 JDT API(通过 JDT API 调用):
之前:
source.. = src/
output.. = bin/
之后:
source.. = src/,\
xtend-gen/
output.. = bin/
这是一个 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);
您可以使用
获取'bin.includes'的条目IBuildEntry entry = buildModel.getBuild().getEntry(IBuildEntry.BIN_INCLUDES);
IBuildEntry
的addToken
方法好像是添加到词条的方法
要保存您需要检查模型是 IEditableModel
的实例并调用 IEditableModel.save
方法。
if (buildModel instanceof IEditableModel) {
((IEditableModel)buildModel).save();
}