2012-03-09 83 views

回答

14

(核心)ant中没有变量,但属性和属性。
@ {FOO}是用于访问macrodef内部的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 manual macrodef
鉴于$ {FOO}是访问属性值的语法:

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

输出:

[echo] ${foo} => bar 

Ant manual property

+0

你打败了我! :-) – 2012-03-09 22:19:38

+0

罢工;-)干杯|| Slàintemhath – Rebse 2012-03-09 22:36:58