java - चींटी चेतावनी: "'interantruntime' सेट नहीं किया गया था"




build javac (5)

मुझे निम्नलिखित चेतावनी मिलती है:

[javac] build.xml:9: warning: 'includeantruntime' was not set, 
defaulting to build.sysclasspath=last; set to false for repeatable builds

इसका क्या मतलब है?


चींटी रनटाइम

बस includeantruntime="false" सेट करें:

<javac includeantruntime="false" ...>...</javac>

यदि आपको कई बार javac -task का उपयोग करना है, तो आप अपने स्वयं के PreSetDef को परिभाषित करने के लिए PreSetDef का उपयोग करने पर विचार करना चाहेंगे जो हमेशा includeantruntime="false" सेट करता है।

अतिरिक्त जानकारिया

http://www.coderanch.com/t/503097/tools/warning-includeantruntime-was-not-set :

यह चींटी 1.8 में पेश किए गए एक गलतफहमी के कारण होता है। बस उस नाम की एक विशेषता को जावैक कार्य में जोड़ें, इसे गलत पर सेट करें, और इसे कभी भी भूल जाएं।

http://ant.apache.org/manual/Tasks/javac.html :

क्लासपाथ में चींटी रन-टाइम पुस्तकालयों को शामिल करना है या नहीं; हाँ के लिए डिफ़ॉल्ट, जब तक build.sysclasspath सेट नहीं है। आमतौर पर इसे गलत पर सेट करना सबसे अच्छा होता है, इसलिए स्क्रिप्ट का व्यवहार पर्यावरण के प्रति संवेदनशील नहीं होता है जिसमें यह चल रहा है।


अपनी build.xml फ़ाइल में <property name="build.sysclasspath" value="last"/> का उपयोग करें

अधिक जानकारी के लिए खोज includeAntRuntime में includeAntRuntime है

अन्य संभावित मूल्य here पाए जा सकते here


डैनियल का जवाब सिर्फ सही काम करता है। यहां एक नमूना स्निपेट है जिसे मैंने अपने build.xml में जोड़ा है:

<target name="compile">
    <mkdir dir="${classes.dir}"/>
    <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
                                                 <!--   ^^^^^^^^^^^^^^^^^^^^^^^^^  -->
        <classpath>
            <path id="application" location="${jar.dir}/${ant.project.name}.jar"/>
            <path id="junit" location="${lib.dir}/junit-4.9b2.jar"/>
        </classpath>
    </javac>
</target>

मुझे इसका सामना करना पड़ा, मैं प्रोग्राम और फीचर में चेक इन करता हूं। jdk1.8 के लिए एक अद्यतन स्थापित किया गया था जो ग्रहण में चींटी के लिए मेरी पुरानी सेटिंग (jdk1.6.0) के साथ संगत नहीं है। मैं उस अद्यतन को स्थापित करता हूं। अभी, मेरी चींटी परियोजना सफलता का निर्माण कर रही है।

कोशिश करो, उम्मीद है कि यह सहायक होगा।


चेत होसे ने यहां एक अच्छी व्याख्या लिखी:

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

यह निर्णय लिया गया कि शायद यह नहीं था कि ज्यादातर लोग क्या चाहते थे। तो अब इसके लिए एक विकल्प है।

यदि आप "सत्य" (includeantruntime के लिए) चुनते हैं, तो कम से कम आप जानते हैं कि आपके बिल्ड क्लासपाथ में एंटी रनटाइम शामिल होगा। यदि आप "झूठा" चुनते हैं तो आप इस तथ्य को स्वीकार कर रहे हैं कि पुराने संस्करण और 1.8+ के बीच निर्माण व्यवहार बदल जाएगा।

जैसा कि आप इस चेतावनी को देखना चाहते हैं, उतना ही नाराज होने पर, यदि आपका निर्माण पूरी तरह से टूट जाता है तो आप भी कम खुश होंगे। इस डिफ़ॉल्ट व्यवहार को रखने से अनमोडिफाइड बिल्ड फ़ाइलों को चींटी के संस्करणों के बीच लगातार काम करने की अनुमति मिलती है।





build-tools