Programmer til trinvis bygning af projekter

org.eclipse.core.resources.builders

Arbejdsområdet understøtter idéen om et trinvist projektbyggeprogram (også kaldet "byggeprogram"). Byggeprogrammets opgave er at behandle et sæt ressourceændringer (leveres som en ressourcedelta). Et Java-byggeprogram kompilerer f.eks. ændrede Java-filer igen og producerer nye klassefiler.

Byggeprogrammer konfigureres på projektbasis og udføres automatisk, når ressourcer i deres projekt ændres. Som sådan skal byggeprogrammer være hurtige og skaleres, for så vidt angår mængden af ændringer snarere end antallet af ressourcer i projektet. Det underforstås typisk, at byggeprogrammer kan opdatere deres "byggetilstand" trinvist.

Byggeprogrammernes udvidelsespunkt gør det muligt for byggeprogrammers skrivefunktion at registrere deres byggeimplementering under et symbolsk navn, som så bruges inde fra arbejdsområdet til at finde og udføre byggeprogrammer. Det symbolske navn er id for byggeprogramudvidelsen. Når brugerne definerer en byggeprogramudvidelse, opfordres brugerne til at inkludere en værdi, der kan læses af mennesker, for den "name"-attribut, der identificerer deres byggeprogram, og som brugerne eventuelt får vist.

<!ELEMENT extension (builder)>

<!ATTLIST-udvidelse

point CDATA #REQUIRED

id    CDATA #REQUIRED

navn  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

navn  CDATA #REQUIRED

value CDATA #REQUIRED>


Følgende er et eksempel på en byggeprogramkonfiguration:

   

<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 udvidelse er defineret i en plugin med id'en "com.xyz.coolplugin", er det fuldstændige navn på byggeprogrammet "com.xyz.coolplugin.coolbuilder".

Klasseattributtens værdi skal repræsentere en underklasse af org.eclipse.core.resources.IncrementalProjectBuilder.

Platformen selv har ingen foruddefinerede byggeprogrammer. Visse produktinstallationer kan inkludere nødvendige byggeprogrammer.