Constructores incrementales de proyectos
Identificador:
org.eclipse.core.resources.builders
Descripción:
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.
Código de configuración:
<!ELEMENT extension (builder)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #REQUIRED
name CDATA #IMPLIED>
- point: identificador totalmente calificado del punto de extensión destino
- id: identificador opcional de la instancia de extensión
- name: nombre opcional de la instancia de extensión
<!ELEMENT builder (run?)>
<!ATTLIST builder
hasNature (true | false)
isConfigurable (true | false) >
- hasNature: los valores "true" o "false" indican si el constructor es propiedad de una naturaleza de proyecto. Si su valor es
"true" y no se encuentra ninguna naturaleza que se corresponda con él,
este constructor no se ejecutará, sino que permanecerá en la especificación de
construcción del proyecto. Si no se especifica este atributo, se presupone que
su valor es "false".
- isConfigurable: los valores "true" o "false",
indican si el
constructor permite la personalización de la construcción a la que responderán
los desencadenantes.
Si el valor es "true", los clientes podrán utilizar la API
ICommand.setBuilding para especificar si este constructor debe
ejecutarse para un desencadenante de construcción concreto.
Si no se especifica este atributo, se presupone que
su valor es "false".
<!ELEMENT run (parameter*)>
<!ATTLIST run
class CDATA #REQUIRED>
- class: nombre totalmente calificado de una subclase de
org.eclipse.core.resources.IncrementalProjectBuilder.
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
- name: nombre de este parámetro, disponible para las instancias de la
clase de constructor especificada.
- value: valor arbitrario asociado con el nombre dado, disponible para
las instancias de la clase de constructor especificada.
Ejemplos:
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".
Información sobre las API:
El valor del atributo
class debe representar una subclase de
org.eclipse.core.resources.IncrementalProjectBuilder.
Implementación suministrada:
La propia plataforma no posee
ningún constructor predefinido. La instalación de algunos productos en
particular puede incluir constructores en caso necesario.
Copyright (c) 2002, 2005 IBM Corporation y otros.
Reservados todos los derechos. Este programa y sus materiales adjuntos están
disponibles bajo los términos de la licencia pública común (Eclipse Public
License) v1.0 que acompaña a esta distribución, y está disponible en
http://www.eclipse.org/legal/epl-v10.html