Programy przyrostowo budujące projekty

org.eclipse.core.resources.builders

Obszar roboczy jest zgodny z ideą programu przyrostowo budującego projekty (w skrócie: programu budującego). Zadaniem programu budującego jest przetwarzanie zestawu zmian zasobów (dostarczanego jako delta zasobów). Na przykład program budujący Java zrekompiluje zmienione pliki Java i wygeneruje nowe pliki klas.

Programy budujące są konfigurowane dla poszczególnych projektów i są wykonywane automatycznie, gdy zasoby danego projektu ulegną zmianie. Z tego powodu programy budujące powinny być szybkie i skalowalne z uwzględnieniem ilości zmian, a nie liczby zasobów projektu. Zazwyczaj implikuje to zdolność programów budujących do przyrostowej aktualizacji ich "stanu budowania".

Zastosowanie punktów rozszerzenia programów budujących umożliwia twórcom programów budujących rejestrację implementacji programów budujących pod nazwą symboliczną, która umożliwi późniejsze znalezienie i wykonanie tego programu wewnątrz obszaru roboczego. Nazwa symboliczna jest identyfikatorem rozszerzenia programu budującego. Podczas definiowania rozszerzenia programu budującego zalecane jest nadanie atrybutowi "name" wartości zrozumiałej dla człowieka. Atrybut ten identyfikuje program budujący i może być przedstawiany użytkownikom.

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


Poniżej przedstawiono przykładową konfigurację programu budującego:

   

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

"Wygenerowane przez program Cool Builder"

/>

</run>

</builder>

</extension>

Jeśli to rozszerzenie zostało zdefiniowane w module dodatkowym o identyfikatorze "com.xyz.coolplugin", to pełną nazwą tego programu budującego będzie "com.xyz.coolplugin.coolbuilder".

Wartość atrybutu klasy musi przedstawiać podklasę klasy org.eclipse.core.resources.IncrementalProjectBuilder.

Sama platforma nie ma predefiniowanych programów budujących. Poszczególne instalacje produktów mogą, zgodnie z potrzebami, obejmować różne programy budujące.