tutorial programa interfaz hacer gui grafica español ejemplos ejecutable componentes como clase java ant build

programa - interfaz grafica java swing pdf



Ant y la tarea disponible: ¿qué pasa si algo no está disponible? (3)

Puede usar una condición en combinación con no:

http://ant.apache.org/manual/Tasks/condition.html

<condition property="fooDoesNotExist"> <not> <available filepath="path/to/foo"/> </not> </condition>

Cuando uso la tarea, la propiedad solo se establece en TRUE si el recurso (por ejemplo, el archivo) está disponible. Si no, la propiedad no está definida.

Cuando imprimo el valor de la propiedad, da verdadero si el recurso estaba disponible, pero solo imprime el nombre de la propiedad.

¿Hay alguna manera de establecer la propiedad a algún valor si el recurso no está disponible? Intenté establecer la propiedad de forma explícita antes de la verificación disponible, pero luego la hormiga se queja:

[available] DEPRECATED - used to override an existing property. [available] Build file should not reuse the same property name for different values.


La razón de este comportamiento son los atributos if / unless en los objetivos. El objetivo con dicho atributo se ejecutará si / a menos que se establezca una propiedad con el nombre. Si se establece en falso o se establece en verdadero, no hay diferencia. De modo que puede usar la tarea disponible para establecer (o no) una propiedad y, en función de esta, ejecutar (o no) una tarea. Establecer la propiedad antes de la tarea disponible no es una solución, ya que las propiedades de la hormiga son inmutables, no se pueden cambiar una vez establecidas.

Hay tres soluciones posibles para establecer una propiedad a un valor si no se ha configurado antes:

  1. Utiliza la tarea disponible en combinación con no.
  2. Usted crea una tarea que configura la propiedad, que se ejecutará solo si la propiedad no está configurada (a menos que-atributo de la tarea).
  3. Simplemente establece la propiedad después de la llamada a disponible. Como la propiedad solo cambiará si no está configurada, hará lo que usted desee.

<available filepath="/path/to/foo" property="foosThere" value="true"/> <property name="foosThere" value="false"/>

La asignación de foos solo será exitosa si su verificación de disponibilidad no lo ha configurado todavía como verdadero.