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?