Constructores incrementales de proyectos

org.eclipse.core.resources.builders

El área de trabajo da soporte al concepto de constructor incremental de proyectos (o "constructor", para abreviar). El trabajo de un constructor consiste en procesar un conjunto de cambios realizados en los recursos (suministrados como delta de recursos). Por ejemplo, un constructor Java recompilará los archivos Java cambiados y producirá nuevos archivos de clase.

Para cada proyecto se configura un constructor, que se ejecuta automáticamente cuando cambian los recursos que hay en el proyecto. Como tales, los constructores deberán ser rápidos y tener una escalabilidad proporcional a la cantidad de cambios, en vez de al número de recursos que haya en el proyecto. Esto implica generalmente que los constructores sean capaces de actualizar incrementalmente su "estado de construcción".

El punto de extensión de los constructores permite a los escritores de constructores registrar la implementación de sus constructores bajo un nombre simbólico, que luego se utiliza desde dentro del área de trabajo para localizar y ejecutar los constructores. El nombre simbólico es el ID de la extensión del constructor. Al definir la extensión de un constructor, es aconsejable que los usuarios incluyan para el atributo "name" un valor legible por personas que identifique el constructor y pueda presentarse potencialmente a los usuarios.

<!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 continuación figura un ejemplo de configuración de constructor:

   

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

Si esta extensión se ha definido en un conector cuyo id sea "com.xyz.coolplugin", el nombre totalmente calificado de este constructor sería "com.xyz.coolplugin.coolbuilder".

El valor del atributo class debe representar una subclase de org.eclipse.core.resources.IncrementalProjectBuilder.

La propia plataforma no posee ningún constructor predefinido. La instalación de algunos productos en particular puede incluir constructores en caso necesario.