ant contrib - Ant @ variable not resolved -
here snippet of build.xml
<target name="compile"> <for param="rsync.destination.host" list="${file}" delimiter="${line.separator}"> <sequential> <echo message="${rsync.ssh.user}@@{rsync.destination.host}:${rsync.destination.base.dir}/"/> </sequential> </for> </target>
i received following output,
compile: [echo] root@{rsync.destination.host}:/tmp/ [echo] root@{rsync.destination.host}:/tmp/ build successful total time: 0 seconds
so here @{rsync.destination.host}
variable not interpreted because of double @@ character. if put space in between them
<echo message="${rsync.ssh.user}@ @{rsync.destination.host}:${rsync.destination.base.dir}/"/>
then variable resolved expected.
compile: [echo] root@ server1:/tmp/ [echo] root@ server2:/tmp/ build successful total time: 0 seconds
since there space in username , server through exception if perform ssh here. idea how solve problem.
there no variables in (core) ant, properties , attributes. @{foo} syntax accessing value of macrodef attribute inside macrodef. antcontrib task uses ant macrodef task under hood has same syntax.
try :
... <echo message="${rsync.ssh.user}@@@{rsync.destination.host}:${rsync.destination.base.dir}/"/> ...
means use 3x @ instead of 2x @
param @{rsync.destination.host}
has masked second @, in fact need use @ 3 times.
Comments
Post a Comment