2014-04-23 151 views
3

我已經定義在Ant腳本宏這需要主機參數:螞蟻Macrodef屬性利用

<macrodef name="upload"> 
    <attribute name="host"/> 
    <sequential> 
    <echo>Uploading source code to @{host}...</echo> 
    <scp trust="true" 
     file="package/code.zip" 
     todir="${webserver.username}@@{host}:${webserver.upload_dir}" 
     keyfile="${webserver.keyfile}" 
     passphrase="" /> 
    </sequential> 
</macrodef> 

問題是我無法弄清楚如何使用@ {}主機在todir字符串,因爲它已經用戶名和主機之間的'@'字符。

回答

3

每頁:https://ant.apache.org/manual/Tasks/macrodef.html

The escape sequence @@ is used to escape @. 
This allows @{x} to be placed in the text without substitution of x by using @@{x}. 

因此,與添加額外的嘗試 '@' 讓主機屬性的值之前。

你也可以嘗試設置<property name="token" value="@"/>並與$ {token}一起使用todir來查看是否有幫助