domingo, 2 de marzo de 2008

Utilizando properties en el archivo build.xml

El uso de una etiqueta property dentro del archivo build.xml en ANT es muy conveniente, y más cuando ya estamos trabajando con un archivo build.xml más grande. Mediante la etiqueta property (como su nombre lo indica) estaremos creando una propiedad que puede ser utilizada a lo largo de todo nuestro archivo build.xml, algo asi como cuando creamos una constante, la cuál si la llegamos a cambiar, se vería reflejado dicho cambio en todos los lugares donde estemos llamando esa propiedad. Trabajemos sobre nuestro HolaMundo.java, modificando nuestro build.xml para que quede como se muestra a continuación:



Se recomienda colocar todos las etiquetas property antes de todos los targets, como podemos observar del código que se muestra arriba, property usa para nuestro ejemplo dos tributos, name y value, en name colocamos el nombre que le asignaremos a nuestro atributo y en value el valor que le corresponde. En nuestro ejemplo el primer property tiene los siguientes atributos, name="fuente" value=".".


Lo siguiente es proceder a usarlo y eso lo podemos observar dentro del target "compilar", como pueden observar dentro de la tarea (task) que se llama javac su atributo srcdir="${fuente}", aqui en este atributo estamos haciendo uso del property definido anteriormente, y precisamente utilizamos los simbolos ${} para poder tener acceso al valor que guarda el property fuente. Reiteramos el uso de este property, si utilizaramos a lo largo de un build.xml de unas 70 lineas, y lo utilizaramos en 40 lineas de dicho archivo, es muy conveniente cambiar una sola linea (La del property correspondiente), y que el cambio se vea reflejado en todas las demás lineas que lo necesiten. De lo contrario sería una tarea muy engorrosa cambiar 40 lineas y obviamente todo estaría muy propenso a cometer errores.


Si utilizamos este build.xml para correr nuestro ejemplo, deberia de ejecutar sin ningún problema y deberíamos observar la siguiente salida, que es muy parecida a la que obtuvimos en un tema previo a este.

No hay comentarios: