Inkrementella projektbyggfunktioner

org.eclipse.core.resources.builders

Arbetsytan stöder inkrementella projektbyggfunktioner (kallas också byggverktyg). Byggverktyget har till uppgift att bearbeta en uppsättning resursändringar (tillhandahålls som resursdeltavärden). En Java-byggfunktion skulle till exempel kompilera om ändrade Java-filer och producera nya klassfiler.

Byggfunktionerna konfigureras per projekt och körs automatiskt när resurser i deras projekt ändras. Byggverktyg bör därför vara snabba och göra ändringar som fokuserar på mängden ändringar, i stället för antalet resurser i projektet. Detta brukar innebära att byggverktyg kan uppdatera sitt "rensade läge" inkrementellt.

Utökningspunkten för byggverktyg gör det möjligt för byggskrivare att registrera sin byggfunktionsimplementation under ett symboliskt namn som sedan används från arbetsytan för att söka efter och köra byggverktyg. Det symboliska namnet är id:et på utökningspunkten för byggfunktionen. När en utökningspunkt för en byggfunktion ska definieras, bör användarna inkludera ett värde som kan läsas av människor för "name"-attributet som identifierar sitt byggverktyg och potentiellt kan presenteras för användare.

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


Följande är ett exempel på en byggkonfiguration:

   

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

"Skapad av Cool Builder"

/>

</run>

</builder>

</extension>

Om den här utökningen definierades i ett insticksprogram med id:et "com.xyz.coolplugin", skulle det fullständiga namnet på byggfunktionen vara "com.xyz.coolplugin.coolbuilder".

Värdet på klassattributet måste motsvara den underordnade klassen till org.eclipse.core.resources.IncrementalProjectBuilder.

Plattformen själv har inga fördefinierade byggfunktioner. Specifika produktinstallationer kan inkludera de byggfunktioner som behövs.