2017-02-15 4 views
0

Existe-t-il un moyen d'accéder par programmation au build.properties d'un projet Java via l'API JDT? Quelque chose comme IJavaProject.getRawClasspath() juste pour le build.properties?Accès par programme à build.properties d'un projet Java via l'API JDT

Si j'ai un IProject/IJavaProject, puis-je ajouter une ligne avec l'API JDT comme celui-ci (par le biais d'appels API JDT):

Avant:

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

Après:

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

Ceci est un objet PDE plutôt que JDT donc aucune API ne va dans les API JDT. –

+0

Donc, il y a des appels PDE qui font ça? – ConveniencePatterns

Répondre

1

Il s'agit d'un objet PDE plutôt que JDT, vous devez donc utiliser les API PDE. Il y a très peu de documentation sur les API PDE.

La propriété build.properties est décrite par l'interface org.eclipse.pde.core.build.IBuildModel. Vous obtenez ce à l'aide:

IProject project = ... project ... 

IPluginModelBase base = PluginRegistry.findModel(project); 

IBuildModel buildModel = PluginRegistry.createBuildModel(base); 

Vous pouvez obtenir l'entrée pour « bin.includes » en utilisant

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

La méthode addToken de IBuildEntry semble être le moyen d'ajouter à l'entrée.

Pour enregistrer, vous devez vérifier que le modèle est une instance de IEditableModel et appeler la méthode IEditableModel.save.

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