2008-09-29 10 views
5

मुझे समस्या है कि एंटी में एक विशिष्ट चरण केवल तभी निष्पादित किया जा सकता है जब हमारे पास बिल्ड कंप्यूटर में जावा 1.5 स्थापित हो। कार्य परिभाषा का उपयोग एक जार फ़ाइल का उपयोग करता है जिसे 1.5 का उपयोग करके संकलित किया गया था, इसलिए 1.4 वर्चुअल मशीन के साथ चलने से एक असंगत क्लासवर्सन अपवाद फेंक देगा।एएनटी का उपयोग करते समय, मैं केवल एक कार्य को कैसे परिभाषित कर सकता हूं यदि मेरे पास कुछ विशिष्ट जावा संस्करण है?

मुझे इस कार्य को इस विशिष्ट परियोजना के लिए काम करने के लिए एक समाधान मिलना है जिसके लिए 1.4 की आवश्यकता है, लेकिन एक प्रश्न मेरे पास आया। यदि मेरे पास कोई विशिष्ट जावा संस्करण नहीं है तो मैं इस कार्य को परिभाषित करने और इस वैकल्पिक चरण को निष्पादित करने से कैसे बच सकता हूं?

मैं लक्ष्य टैग पर "अगर" या "जब तक" टैग का उपयोग नहीं कर सकता, लेकिन वे केवल जांचते हैं कि कोई संपत्ति सेट है या नहीं। मैं भी एक समाधान चाहता हूं जिसके लिए अतिरिक्त पुस्तकालयों की आवश्यकता नहीं है, लेकिन मुझे नहीं पता कि मानक में बिल्ड-इन कार्यक्षमता ऐसा कार्य करने के लिए पर्याप्त है या नहीं।

उत्तर

10

जावा संस्करण ant.java.version संपत्ति के माध्यम से उजागर किया गया है। संपत्ति सेट करने के लिए स्थिति का उपयोग करें और कार्य को केवल तभी निष्पादित करें जब यह सत्य हो।

<?xml version="1.0" encoding="UTF-8"?> 

<project name="project" default="default"> 

    <target name="default" depends="javaCheck" if="isJava6"> 
     <echo message="Hello, World!" /> 
    </target> 

    <target name="javaCheck"> 
     <echo message="ant.java.version=${ant.java.version}" /> 
     <condition property="isJava6"> 
      <equals arg1="${ant.java.version}" arg2="1.6" /> 
     </condition> 
    </target> 

</project> 
2

बिल्डफाइल में जांच करने की संपत्ति ${ant.java.version} है।

आप एक काम सशर्त बनाने के लिए <condition> तत्व इस्तेमाल कर सकते हैं जब एक संपत्ति के लिए एक निश्चित मूल्य के बराबर होती है: शर्म की बात है मैं चींटी 1.6 उपयोग करने के लिए है कि इसके आह

<condition property="legal-java"> 
    <matches pattern="1.[56].*" string="${ant.java.version}"/> 
</condition> 
+0

! यह regexp कार्यक्षमता केवल 1.7 के बाद उपलब्ध है! –

संबंधित मुद्दे

 संबंधित मुद्दे