आप <fail>
कार्य का उपयोग कर शर्तों का उपयोग कर सकते हैं:
<fail message="Property "foo" needs to be set to a value">
<condition>
<or>
<equals arg1="${foo}" arg2=""/>
<not>
<isset property="foo"/>
</not>
</or>
</condition>
यह बराबर है if (not set ${foo} or ${foo} = "")
कह करने के लिए स्यूडोकोड है। आपको अंदरूनी एक्सएमएल स्थितियों को पढ़ना होगा।
<fail>
कार्य पर आप <unless>
क्लॉज का उपयोग कर सकते थे अगर आप केवल यह सुनिश्चित करते हैं कि चर सेट किया गया था या नहीं, और यह नहीं कि इसका वास्तविक मूल्य है या नहीं।
<fail message="Property "foo" needs to be set"
unless="foo"/>
बहरहाल, यह असफल नहीं हो संपत्ति सेट है, लेकिन कोई मूल्य नहीं है यदि।
एक चाल है कि इस सरल
<!-- Won't change the value of `${foo}` if it's already defined -->
<property name="foo" value=""/>
<fail message="Property "foo" has no value">
<condition>
<equals arg1="${foo}" arg2=""/>
</condition>
</fail>
याद रखें कि मैं एक संपत्ति रीसेट नहीं कर सकते कर सकते हैं नहीं है! यदि ${foo}
में पहले से ही एक मान है, तो ऊपर दिए गए <property>
कार्य कुछ भी नहीं करेगा। इस तरह, मैं <isset>
स्थिति को खत्म कर सकता हूं।यह अच्छा है क्योंकि आप तीन गुण होते हैं हो सकता है: अन्य उत्तर पर
<property name="foo" value=""/>
<property name="bar" value=""/>
<property name="fubar" value=""/>
<fail message="You broke the build, you dufus">
<condition>
<or>
<equals arg1="${foo}" arg2=""/>
<equals arg1="${bar}" arg2=""/>
<equals arg1="${fubar}" arg2=""/>
</or>
</condition>
</fail>
स्रोत
2012-02-09 23:33:10
संभव डुप्लिकेट - (http://stackoverflow.com/questions/226683/ant-filtering-fail-if-property-not-set) – oers