下面的Ant構建文件片段試圖簡單地輸出每個sql腳本運行前後的時間。我無法更改Ant目標的結構(create-tables必須像調用run-sql-script一樣)。問題是屬性(時間和time2)是不可變的(http://ant.apache.org/manual/Tasks/property.html),因此只有第一次操作的時間,而不是第二次。有沒有辦法做我想在螞蟻做什麼?在螞蟻中輸出幾個時間戳
<target name="create-tables">
<antcall target="run-sql-script">
<param name="db.script" value="teams.sql"/>
</antcall>
<!-- Create the base UDM schema. -->
<antcall target="run-sql-script">
<param name="db.script" value="players.sql"/>
</antcall>
</target>
<target name="run-sql-script">
<tstamp>
<format property="time" pattern="MM/dd/yyyy hh:mm:ss aa"
offset="-5" unit="hour"/>
</tstamp>
<echo>before: ${time}</echo>
<sql
classpath="${classpath}"
driver="${db.driver}"
url="${db.url}"
userid="${db.userid}"
password="${db.password}"
src="${script.dir}/${db.script}"
delimiter="${script.delimiter}"
onerror="abort">
</sql>
<tstamp>
<format property="time2" pattern="MM/dd/yyyy hh:mm:ss aa"
offset="-5" unit="hour"/>
</tstamp>
<echo>after: ${time2}</echo>
</target>
@Rich - 你是怎麼改變?亞倫的原創和你的改變有什麼區別? – andersonbd1 2009-09-25 14:35:15
@ andersonbd1,在第一個實例中,macrodef將使用時間戳設置一個屬性,一旦時間戳被設置,它將在構建中的任何地方與原始值一起使用。在第二個版本中,timestamp變量的作用範圍爲內部調用,因此每次都會有一個新值。 – 2009-09-25 15:02:52