Pasos de construcción personalizada de características y plug-ins
A partir de la versión 3.2, una característica o plug-in tiene capacidad para añadir
pasos de construcción personalizada a su propia construcción. Estos pasos
personalizados puede utilizarse para operaciones tales como instrumentar el código de
bytes después de la compilación, indexar archivos de ayuda para la documentación o copiar
archivos adicionales en el paquete compuesto.
Para utilizar destinos personalizados, una característica o plug-in debe definir la
propiedad customBuildCallbacks en su archivo build.properties; el valor de este
propiedad es la ubicación de un archivo xml en relación al directorio raíz de la
característica o plug-in, que contiene los destinos personalizados. Se suministran
plantillas denominadas customBuildCallbacks.xml
que contienen los destinos personalizados soportados en
org.eclipse.pde.build/templates/plugins y
org.eclipse.pde.build/templates/features, respectivamente. Estas plantillas pueden
copiarse en la característica o plug-in y modificarse según sea necesario. Los
destinos personalizados se invocarán mediante la tarea subant con failonerror="false",
por lo que la construcción continuará si el archivo xml personalizado no contiene un
destino determinado o se produce un error.
Plug-ins
El archivo build.xml generado que construye un plug-in contiene varios destinos que
realizan tareas específicas. La construcción PDE permite al plug-in suministrar
pre y postdestinos personalizados a los que se llamará antes y después de tareas
específicas. Además de las propiedades ant que ya puedan estar definidas,
también puede pasarse a cada
destino personalizado un par de propiedades específicas. Los destinos siguientes dan
soporte a llamadas de retorno personalizadas:
- build.jars: El destino build.jars
invocará a su vez cada uno de los destinos de compilación que se construirán para este
paquete compuesto. Da soporte a destinos pre.build.jars y
post.build.jars a los que se llama antes y
después de llamar a todos los destinos de compilación. Tanto los predestinos como
los postdestinos se suministran con la propiedad build.result.folder, que es la
carpeta en la que se copiarán los resultados de la construcción.
- Destinos de compilación:
El archivo build.xml define un destino de compilación para cada jar
construido (por ejemplo, @dot para el propio paquete compuesto o library.jar).
Cada destino de compilación da soporte a 3 llamadas de retorno personalizadas:
- pre.<destino compilación>:
Se invoca antes de compilar los archivos fuente. Se suministra con las propiedades
siguientes:
- target.folder: La carpeta en la que se colocarán los archivos
de clase compilados.
- source.folder<N>: La carpeta o carpetas fuente que
contienen el código fuente que debe compilarse. (por ejemplo,
source.folder1, source.folder2, etc).
- <destino compilación>.classpath: Una referencia a la
estructura de vías de acceso ant que contiene la vía de acceso de clases que se utilizará
en la compilación. (por ejemplo, @dot.classpath,
library.jar.classpath)
- post.compile.<destino
compilación>: Se invoca una vez compilado el código fuente, pero antes de
almacenar en archivos jar los archivos de clase o copiarlos en la carpeta de resultados
de la construcción.
Se suministra con las mismas propiedades que el destino pre.<destino compilación>.
- post.<destino compilación>:
Se invoca al final del destino de compilación una vez copiados los resultados en la
carpeta de resultados de la construcción. Se suministra con las propiedades
siguientes:
- jar.Location: El jar o la carpeta que contienen los resultados de la
compilación.
- <destino compilación>.classpath: Una referencia a la estructura de
vías de acceso ant que contiene la vía de acceso de clases utilizada en la compilación.
- build.sources: Este destino construye
los archivos zip origen para cada uno de los destinos de compilación. Da soporte a
los destinos pre.build.sources
y post.build.sources. Estos dos destinos
se suministran con la propiedad build.result.folder, que es la carpeta en la que se
copiarán los archivos zip origen.
- gather.bin.parts:
Este destino copia los resultados de construcción (es decir, los jar y demás archivos
incluidos en el paquete compuesto) en el directorio destino final.
También es el destino en el que los calificadores de versión se sustituyen en el archivo
de manifiesto (consulte la
sección Calificadores de versión). Da
soporte a los destinos pre.gather.bin.parts
y post.gather.bin.parts. A los predestinos
y postdestinos se les suministran dos propiedades:
- build.result.folder: la carpeta que contiene los resultados de la
construcción
- target.folder: la carpeta destino en la que se copian los
resultados de la construcción y el contenido del paquete compuesto.
- gather.sources: Este destino recoge los
archivos zip origen del paquete compuesto. Da soporte a los destinos pre.gather.sources y post.gather.sources.
Tanto los predestinos como los postdestinos se suministran con la propiedad
target.folder, que es la carpeta en la que se copiarán los archivos origen.
- gather.logs: Este destino recoge los
archivos de anotaciones de la construcción. Da soporte a pre.gather.logs y post.gather.logs.
Tanto los predestinos como los postdestinos se suministran con la propiedad
destination.temp.folder, que es la carpeta temporal en la que se copiarán los archivos
de anotaciones.
- clean: Este destino realiza una
limpieza y da soporte a los destinos pre.clean
y post.clean. Los predestinos y
postdestinos tienen las siguientes propiedades:
- plugin.destination: La carpeta en la que se ha copiado el paquete
compuesto final.
- build.result.folder: La carpeta en la que se han copiado los
resultados de la construcción.
- temp.folder: La carpeta temporal en la que se han almacenado
temporalmente los resultados antes de copiarlos en el destino final.
Características
El archivo build.xml generado para características sólo da soporte a llamadas de retorno
de construcción personalizadas para el destino gather.bin.parts. Este destino
invocará el destino gather.bin.parts de todas las características y plug-ins incluidos.
Da soporte a pre.gather.bin.parts y post.gather.bin.parts. Estos dos destinos se
suministran con las
propiedades siguientes:
- destination.temp.folder: El directorio en el que se copiarán los
plugins.
- feature.directory: El directorio en el que se copiarán los archivos
de esta característica.