Trinnvise prosjektbyggere

org.eclipse.core.resources.builders

Arbeidsområdet støtter begrepet trinnvis prosjektbygger (eller kortformen "bygger"). En byggers jobb er å behandle et sett av ressursendringer (levert som en ressursdelta). En Java-bygger vil for eksempel kompilere endrede Java-filer på nytt og produsere nye klassefiler.

Byggere konfigureres per prosjekt, og kjøres automatisk når ressursene i prosjektene endres. På denne måten kan byggere være raske og skalere mengden av endring i stedet for antall ressurser i prosjektet. Dette betyr vanligvis at byggere kan utføre en trinnvis oppdatering av "byggetilstanden".

Med byggerutvidelsespunktet kan en byggerforfatter registrere byggerimplementeringen under et symbolsk navn som så brukes fra innsiden av arbeidsområdet til å finne og kjøre byggere. Det symbolske navnet er IDen for byggerutvidelsen. Ved definering av en byggerutvidelse, blir brukerne oppfordret til å inkludere en lesbar verdi for attributtet "name" som identifiserer byggeren, og som kan presenteres for brukerne.

<!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>


Nedenfor finner du et eksempel på en byggerkonfigurasjon:

   

<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>

Hvis denne utvidelsen er definert i en plugin-modul med IDen "com.xyz.coolplugin", vil det fullt kvalifiserte navnet på denne byggeren være "com.xyz.coolplugin.coolbuilder".

Verdien av class-attributtet må representere en subklasse av org.eclipse.core.resources.IncrementalProjectBuilder.

Selve plattformen har ikke noen forhåndsdefinerte byggere. Installasjoner av deltakerprodukter kan omfatte byggere etter behov.