Générateurs de projet incrémental
Identificateur :
org.eclipse.core.resources.builders
Description :
L'espace de
travail supporte la notion de générateur de projet incrémentiel (ou
simplement "générateur"). La
tâche d'un générateur consiste à traiter un ensemble de modifications des
ressources (fourni sous forme de delta des ressources). Par exemple, un
générateur Java peut recompiler les fichiers Java modifiés et produire de
nouveaux fichiers classe.
Les générateurs sont configurés sur la base d'un par projet et s'exécutent
automatiquement lorsque les ressources contenues dans leur projet sont
modifiées. De ce fait, ils doivent être rapides et à l'échelle de la
quantité de changements plutôt qu'à celui du nombre de ressources
contenues dans le projet. Ceci implique généralement que les générateurs
soient capables de mettre à jour leur "état généré" de manière
incrémentielle.
Le point d'extension des générateurs permet aux éditeurs de
compilateur d'enregistrer leur implémentation de générateur sous un
nom symbolique qui est ensuite utilisé dans l'espace
de travail pour trouver et exécuter les générateurs. Ce nom symbolique est
l'ID de l'extension du générateur. Lors de la définition d'une extension
de générateur, les utilisateurs sont encouragés à inclure une valeur
lisible par l'homme pour l'attribut "name" (nom) qui identifie leur
générateur et qui peut être potentiellement présenté aux utilisateurs.
Marques de configuration :
<!ELEMENT extension (builder)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #REQUIRED
name CDATA #IMPLIED>
- point - identificateur qualifié complet du point
d'extension cible.
- id - identificateur facultatif de l'instance
d'extension.
- name - nom facultatif de l'instance d'extension.
<!ELEMENT builder (run?)>
<!ATTLIST builder
hasNature (true | false)
isConfigurable (true | false) >
- hasNature - "true" ou "false" indique si ce
générateur est possédé par une nature de projet. Si la valeur est
"true" et aucune nature correspondante n'est trouvée, ce
générateur ne s'exécutera pas mais restera dans la spécification de
génération du projet. Si cet attribut n'est pas spécifié, la valeur est
supposée être "false".
- isConfigurable - "true" or "false" indique si le générateur permet une personnalisation des déclencheurs de génération auxquels il répondra. Si la valeur est "true", les clients pourront utiliser l'API ICommand.setBuilding pour spécifier si ce générateur doit être exécuté pour un déclencheur de génération. Si cet attribut n'est pas spécifié, la valeur est
supposée être "false".
<!ELEMENT run (parameter*)>
<!ATTLIST run
class CDATA #REQUIRED>
- class - nom complet qualifié d'une sous-classe de
org.eclipse.core.resources.IncrementalProjectBuilder.
<!ELEMENT
parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
- name - nom de ce paramètre mis à la disposition des instances de la classe du générateur spécifié.
- value - valeur arbitraire associée au nom donné et mise à la disposition des instances de la classe de générateur spécifié.
Exemples :
L'exemple
ci-dessous illustre la configuration d'un générateur :
<extension id=
"coolbuilder"
name=
"Cool Builder"
point=
"org.eclipse.core.resources.builders"
>
<builder hasNature=
"false"
>
<run class=
"com.xyz.builders.Cool"
>
<parameter name=
"optimize"
value=
"true"
/>
<parameter name=
"comment"
value=
"Produced by the Cool Builder"
/>
</run>
</builder>
</extension>
Si cette extension a été définie dans un plug-in avec l'ID
"com.xyz.coolplugin", le nom qualifié complet de ce générateur sera
"com.xyz.coolplugin.coolbuilder".
Informations d'API :
La
valeur de l'attribut class doit correspondre à une sous-classe de
org.eclipse.core.resources.IncrementalProjectBuilder.
Implémentation fournie :
La
plateforme ne possède aucun générateur prédéfini. Un produit particulier peut inclure les générateurs requis.
Copyright (c) 2002, 2005 IBM Corporation and others.
All rights reserved. Ce programme et les produits associés sont
distribués sous licence publique Eclipse v1.0 et disponibles à
l'adresse suivante :
http://www.eclipse.org/legal/epl-v10.html