我需要用戶在編譯時定義一個變量,我仍然必須決定它是否是一個環境變量或屬性(ant -Dname=value
)。如果在Ant中沒有定義一個變量會引發一個錯誤
如果變量未被用戶定義,如何在編譯時產生錯誤?
我需要用戶在編譯時定義一個變量,我仍然必須決定它是否是一個環境變量或屬性(ant -Dname=value
)。如果在Ant中沒有定義一個變量會引發一個錯誤
如果變量未被用戶定義,如何在編譯時產生錯誤?
對於第一個問題:
如果變量是指該應用程序的外部環境特定的條件下,然後使它的環境(OS)的變量。否則,使它成爲一個財產。很顯然,這並不能完全回答你的問題,因爲你仍然需要確定它的含義(對於你的應用或系統)來說一個變量是環境特定的。
另一位導遊會問自己是否可以(或必須)依賴於同一變量的不同值的多個應用程序,都可能被部署在同一系統上。在這種情況下,我們不能使用環境變量,只有基於屬性的變量纔是唯一的方法。
對於第二個問題:
使用Ant的內置Fail的任務,如果條件或屬性未設置中止構建。從螞蟻的上失敗任務的文檔,你可以,如果你使用基於屬性變量得到關於如何去做一個想法:如果你決定使用環境變量
<fail>
<condition>
<not>
<isset property="thisdoesnotexist"/>
</not>
</condition>
</fail>
,你只需使用物業任務的環境屬性進軍環境(OS),變量就如同他們是生成屬性(請參閱applicable documentation的例子。)
希望它有幫助。
只需添加:
<fail unless="var1" message="var1 is not set"/>
如果var1
未設置構建就會失敗。
+1並接受,正是我所期待的。另外,對於壞的英語感到抱歉,但關於env和財產的第一個聲明並不是真正的問題,而是一些額外的信息。 ;) – 2011-03-28 15:48:16