Construtores de Projetos Incrementais

org.eclipse.core.resources.builders

O espaço de trabalho suporta a noção de um construtor do projeto incremental (ou a abreviação "construtor"). O job de um construtor é processar um conjunto de alterações em recursos (fornecido como um delta de recursos). Por exemplo, um construtor Java recompilaria arquivos Java alterados e produziria novos arquivos de classe.

Os construtores são configurados por projeto e são executados automaticamente quando os recursos de seus projetos são alterados. Como tal, os construtores devem ser rápidos e escalados de acordo com a quantidade de alterações e não com o número de recursos no projeto. Isso significa que, geralmente, os construtores são capazes de atualizar seus "estados de criação" de forma incremental.

O ponto de extensão dos construtores permite que o construtor grave os registros das implementações do construtor sob um nome simbólico que é então utilizado dentro da área de trabalho para encontrar e executar os construtores. O nome simbólico é o id da extensão do construtor. Ao definir uma extensão do construtor, os usuários são encorajados a incluir um valor legível a seres humanos no atributo "name", o qual identifica seus construtores e potencialmente pode ser apresentado aos usuários.

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


A seguir um exemplo da configuração do construtor:

   

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

Se esta extensão foi definida em um plug-in com id "com.xyz.coolplugin", o nome completo deste construtor seria "com.xyz.coolplugin.coolbuilder".

O valor do atributo de classe deve representar uma subclasse de org.eclipse.core.resources.IncrementalProjectBuilder.

A plataforma não têm construtores predefinidos. Instalações do produto especiais podem incluir construtores, conforme pedido.