ant macrodef

ant - Macrodef y "propiedades locales"



(1)

Desde Ant 1.8 puedes usar la tarea local para esto. Por ejemplo:

<local name="source_name"/> <property name="source_name" refid="source_refid"/>

¡Tu ejemplo es justo el tipo de cosa para local es local !

Estoy tratando de mover un archivo (especificado por un patrón) a una ubicación determinada en un macrodef Ant:

<macrodef name="extract"> <attribute name="package"/> <sequential> <!-- the path will contain the unique file in extracted regardless of the name --> <path id="source_refid"> <dirset dir="${dep}/lib/@{package}/extracted/"> <include name="@{package}-*"/> </dirset> </path> <!-- this is not working: properties are immutable --> <property name="source_name" refid="source_refid"/> <move file="${source_name}" tofile="${dep}/@{package}/" overwrite="true" /> </sequential> </macrodef>

Esto funcionará solo una vez, ya que ${source_name} es inmutable.

Una opción sería usar la tarea variable, pero no encontré una forma de asignar un refid a una var .

¿Hay alguna manera de tener algo similar a la variable local en un macrodef? O (problema XY) ¿hay una forma mejor de resolver mi problema?