0
我希望能夠將一個可選參數傳遞給一個ant任務調用,以便在被調用目標被忽略時顯示爲未設置(在條件中很重要或在使用unless
或if
屬性時很重要)。我不知道是否設置了optArg,所以我無法對參數進行硬編碼。<ant>任務調用的可選參數?
示例:螞蟻目標someTarget需要強制參數mandatoryArg和支持可選的參數OPTARG。
我可以cludgy複製像這樣實現這一點:
<if><equals arg1="${optArg}" arg2="true" />
<then>
<ant dir="someDir" target="someTarget" inheritAll="false">
<property name="mandatoryArg" value="42" />
<property name="optArg" value="true" />
</ant>
</then>
<else>
<ant dir="someDir" target="someTarget" inheritAll="false">
<property name="mandatoryArg" value="42" />
</ant>
</else>
</if>
我想離開了if語句,使螞蟻呼叫不重複,又不失可選性質OPTARG。我已經找到this question,這似乎涵蓋了一個不同的問題。
我使用Ant 1.7和ant-contrib。
任何想法?謝謝!
編輯:我也接受解釋爲什麼它真的不可能的答案。
引用一個單一
<ant>
任務調用內部後務必附上代碼片段在反引號'的行爲像這樣'這樣你的代碼就可以看到了。乾杯〜 – 2012-01-18 15:28:41@David:聽起來很有希望,但是我怎麼去添加propertyset呢?你能提供一個代碼示例嗎?謝謝! – 2012-01-18 21:45:26
好的,我自己發現。您可以定義一個包含mandatoryArg *和* optArg的屬性集,每次引用時都會對其進行動態評估。然後,當antcall發生時,它只包含實際定義的屬性。所以我會接受答案。 – 2012-01-20 16:55:20