1
從螞蟻的build.xml考慮以下摘錄:異常螞蟻行爲和antcall
<presetdef name="echo1def">
<echo message="prop: ${foo}" />
</presetdef>
<presetdef name="echo2def">
<sequential>
<echo message="prop: ${foo}" />
</sequential>
</presetdef>
<target name="echotarget1">
<property name="foo" value="bar" />
<echo1def/>
</target>
<target name="echotarget2">
<property name="foo" value="bar" />
<echo2def/>
</target>
<target name="echo1">
<antcall target="echotarget1" />
</target>
<target name="echo2">
<antcall target="echotarget2" />
</target>
調用任何{echotarget1,echotarget2,ECHO1}的產生的prop: bar
預期的輸出。然而,調用echo2會產生prop: ${foo}
。
爲什麼不能echo2def
解決${foo}
屬性?它是在同一個項目之前立即定義的(即,甚至不在antcall的另一側)。除了presetdef之外,執行echo1的調用不包含在<sequential>
中,沒有問題。
最後,
<target name="echo3">
<property name="foo" value="baz" />
<antcall target="echotarget2" />
</target>
報告prop: baz
- 所以從antcalling項目該屬性可以可以看出,即使後presetdef是它被定義。
對不起,我的意思是presetdef,對不起,會改正這一點。 – BeeOnRope 2012-02-08 22:17:08
...但問題是 - presetdef可以使用或任何其他任務 - 我只是使用,因爲它是最簡單的,但您可能會遇到與或其他任何問題相同的問題。 –
BeeOnRope
2012-02-08 22:18:04
你是對的,它可能包含任何嵌套的任務,但看到我編輯的答案 – Rebse 2012-02-09 10:52:00