Incrementele projectbuilders

org.eclipse.core.resources.builders

Het werkgebied ondersteunt een incrementele projectbuilder (ook wel een "builder" genoemd). De taak van een builder is om een verzameling resourcewijzigingen (aangeleverd als resourcedelta) te verwerken. Zo worden met een Java-builder gewijzigde Java-bestanden opnieuw gecompileerd en nieuwe klassenbestanden gemaakt.

Builders worden per project geconfigureerd en worden automatisch uitgevoerd wanneer resources in het bijbehorende project zijn gewijzigd. Builders moeten snel kunnen uitgevoerd en eerder rekening houden met de hoeveelheid wijzigingen dan het aantal resources in het project. Hiertoe moeten builders hun buildstatus incrementeel kunnen bijwerken.

Via het builderextensiepunt kunnen buildschrijfprogramma's hun builderimplementie opslaan onder een symbolische naam, die vervolgens vanuit het werkgebied wordt gebruikt om builders op te zoeken en uit te voeren. De symbolische naam is het ID van de builderextensie. Bij het definiëren van een builderextensie is het raadzaam een beschrijvende en gemakkelijk leesbare weergavenaam in te voeren voor het kenmerk "name".

<!ELEMENT extension (builder)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #REQUIRED

name  CDATA #IMPLIED>


<!ELEMENT builder (run?)>

<!ATTLIST builder

hasNature      (true | false)

isConfigurable (true | false) >


<!ELEMENT run (parameter*)>

<!ATTLIST run

class CDATA #REQUIRED>


<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>


Dit is een voorbeeld van de extensie builders:

   

<extension id=

"coolbuilder"

name=

"Mijn 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=

"Gemaakt door mijn builder"

/>

</run>

</builder>

</extension>

Als deze extensie is gedefinieerd in een plugin met het ID "com.xyz.coolplugin", wordt de volledig gekwalificeerde naam van deze builder "com.xyz.coolplugin.coolbuilder".

De waarde van het kenmerk class moet een subklasse van org.eclipse.core.resources.IncrementalProjectBuilder zijn.

Er zijn geen vooraf gedefinieerde builders voor het platform. Bij bepaalde producten worden ook de nodige builders geïnstalleerd.