Что означает переменная с символом @в файле 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 свойство вручную
Ответ 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 свойство вручную