Что означает переменная с символом @в файле Ant build.xml?

Может ли кто-нибудь сказать мне, что символ @перед переменной означает в файле ant build.xml?

<subant target="@{target}">

Спасибо большое!

Ответ 1

В (core) ant нет переменных, но свойств и атрибутов.
@{foo} - это синтаксис для доступа к значению атрибута macrodef внутри макродефа, то есть:

<project name="tryme">
 <macrodef name="whatever">
  <attribute name="foo" default="bar"/>
   <sequential>
    <echo>foo =>  @{foo}</echo>
   </sequential>
 </macrodef>

 <!-- testing 1, foo attribute not set, will use default value -->
 <whatever/>

 <!-- testing 2,  set attribute foo to 'baz'-->
 <whatever foo="baz"/>
</project>

:

 [echo] foo =>  bar
 [echo] foo =>  baz

См. Ant ручной макрообъект
В то время как ${foo} является синтаксисом для доступа к значению свойства:

<project name="demo">
 <property name="foo" value="bar"/>
 <echo>$${foo} => ${foo}</echo>
</project>

:

[echo] ${foo} => bar

См. Ant свойство вручную