Configuración de construcción
El mecanismo de construcción está controlado por una configuración de construcción.
La configuración de construcción de un conector, fragmento o característica individual se
encuentra en un archivo build.properties del elemento correspondiente.
Los asistentes de creación de proyectos del PDE generan el archivo
build.properties cuando se crean proyectos de conector. El archivo
contiene información sobre cómo compilar las carpetas fuente en archivos
JAR. Esta información se puede actualizar de manera no directa en la página
Tiempo de ejecución del editor de manifiestos. También se puede modificar
directamente mediante el editor adecuado.
El PDE proporciona para el archivo build.properties un editor
sencillo que tiene vistas de formulario y del fuente.
El propio archivo se
ajusta al formato de las propiedades Java. Tendrá que proporcionar
una serie de claves y sus correspondientes valores. Para separar múltiples
valores se utilizan comas como delimitadores.
Propiedades comunes
- bin.includes: lista de los archivos que se incluirán en la versión binaria del conector en construcción;
- bin.excludes: lista de los archivos que hay que excluir de la
construcción de binarios.
- qualifier: cuando el número de versión de elemento finaliza con
.qualifier, indica por qué valor debe sustituirse ".qualifier". El valor de la
propiedad puede ser contexto, <valor> o ninguno. El contexto
generará una fecha según la fecha del sistema, o bien utilice los códigos CVS cuando la
construcción sea automatizada. El valor es un valor real. Ninguno hará que se elimine
".qualifier". Si se omite la propiedad, se utilizará el contexto.
- custom=true: indica que el script de construcción se elabora manualmente,
en contraste con la generación automática. Por consiguiente no se consulta ningún otro
valor.
Propiedades específicas de conector
- source.<library>: lista las carpetas origen que se compilarán (por ejemplo,
source.xyz.jar=src/, src-ant/).
Si la biblioteca está especificada en plugin.xml o manifest.mf, el valor debe coincidir;
- output.<library>: lista la carpeta de salida que recibe el resultado de la compilación;
- source.<library>: lista los archivos que no deberán copiarse en la biblioteca por el compilador;
- extra.<library>: vías de acceso de clases adicionales que se utilizan
en la construcción automatizada. Las vías de acceso de clases pueden
ser relativas o bien estar formadas por los URL de la plataforma que hagan
referencia a los conectores y fragmentos del entorno de desarrollo (por
ejemplo, ../someplugin/xyz.jar,
plataforma:/plugins/org.apache.ant/ant.jar). Son preferibles los URL de plataforma a las
vías de acceso relativas;
- manifest.<library>: indique el archivo que se utilizará como manifiesto para
la biblioteca. El archivo se ubicará en una de las carpetas fuente que se utilizará como entrada
para el jar.
- src.includes: lista de los archivos que hay que incluir en la
construcción de fuentes.
- src.excludes: lista de los archivos que hay que excluir de la
construcción de fuentes.
- jars.extra.classpath: (obsoleto) el mismo efecto que
extra.<library> excepto en que las entradas se aplican a todas las bibliotecas;
- jars.compile.order: define el orden en el que deben compilarse los archivos
JAR (en el caso de que haya múltiples bibliotecas).
Los valores definidos para estas claves que terminan con "inclusiones" o
"exclusiones" se expresan como "patrones" de Ant. Los formatos estándar dan los
resultados previstos.Por ejemplo, el
patrón "*.jar" indica todos los archivos JAR del directorio de
nivel superior.Por omisión, los patrones no representan varios niveles
(profundidad).Por ejemplo, si desea describir todos los archivos Java, deberá
utilizar el patrón "**/*.java".El patrón "**" corresponde a
cualquier número de niveles de directorio.De forma parecida, para describir
subárboles enteros, se utilizaría "xyz/".
Propiedades específicas de característica
- root: lista los archivos y carpetas que deben incluirse en el directorio
raíz del producto. Los distintos valores soportados son:
- <folderName>: una vía de acceso relativa a una carpeta a copiar;
- file:<fileName>: una vía de acceso relativa a un archivo a copiar;
- absolute:<folderName>: una vía de acceso absoluta a una carpeta a copiar;
- absolute:file:<fileName>: una vía de acceso absoluta a un archivo a copiar;
- root.<config>: lista los archivos y carpetas que deben incluirse en el
directorio raíz del producto cuando se construye para la configuración especificada.
config consta de tres (3) segmentos de una configuración separados por un punto;
- root.permissions.<permissionValue>: lista los archivos y carpetas para chmod con
el valor dado. La referencia a carpetas debe finalizar con '/';
- root.permissions.<config>.<permissionValue>: lista los archivos y carpetas
para chmod con el valor dado para una configuración específica. La referencia a carpetas debe finalizar con '/';
- root.link: lista por pares (separados por una coma) los archivos y carpetas
que deben enlazarse simbólicamente.
La primera entrada indica el origen (destino en la terminología unix) y la segunda
entrada el nombre de enlace;
- root.link.<config>: una lista separada por comas de los pares de
archivos y carpetas que deben enlazarse simbólicamente para una configuración específica.
La primera entrada indica el origen (destino en la terminología unix) y la segunda
entrada el nombre de enlace;
- generate.feature@<featureId>: indica que el featureId de
característica origen será la característica origen para la característica indicada como
valor de esta propiedad.Los valores listados después de la primera coma indican
elementos que deben extraerse del repositorio;
- generate.plugin@<pluginId>: indica que el pluginId de conector origen será
el conector origen para el conector indicado como valor de esta propiedad.
El siguiente ejemplo se ha extraído de build.properties de la característica org.eclipse.platform.
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*