Tôi cố gắng để di chuyển một tập tin (xác định bởi một mẫu) đến một địa điểm được đưa ra trong một macrodef Ant:Macrodef và "tính địa phương"
<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>
này sẽ làm việc chỉ một lần như ${source_name}
là không thay đổi.
Một tùy chọn sẽ là sử dụng tác vụ biến nhưng tôi không tìm thấy cách chỉ định một refid cho var
.
Có cách nào để có thứ gì đó tương tự như biến cục bộ trong macrodef không? Hoặc (XY vấn đề) là có một cách tốt hơn để giải quyết vấn đề của tôi?