java - एएनटी का इस्तेमाल करते हुए केवल परिवर्तित स्रोत फाइलों को कैसे संकलित किया जाए




performance ant compilation (3)

जैसा कि मैं समझता हूं, केवल संशोधित जावा फाइलों को संकलित करना, चींटी जावैक कार्य का डिफ़ॉल्ट व्यवहार है। चींटी एक .java फ़ाइल के टाइमस्टैम्प का उपयोग करता है और इसके संबंधित क्लास फ़ाइल को निर्धारित करने के लिए कि क्या जावा फ़ाइल को पुनः कंपाइल करने की आवश्यकता है। मैंने कई परियोजनाओं में इसे इस्तेमाल किया है और मेरे पास कभी समस्या नहीं है।

यहां कुछ चीजें हैं जो आप देख सकते हैं

  1. क्या आपका स्रोत ट्री निर्देशिका संरचना आपके जावा पैकेज संरचना से मेल खाता है? कृपया देखें कि चींटी हमेशा मेरी सभी जावा फ़ाइलों को पुनः कंपाइल क्यों करती है? । यह शायद 1 नंबर का कारण है क्योंकि यह अकसर किये गए सवाल में है

  2. मैं देखता हूं कि आपका compile लक्ष्य init लक्ष्य पर निर्भर करता है? init लक्ष्य क्या करता है? क्या यह किसी भी clean लक्ष्य पर निर्भर करता है या क्या यह क्लस्टर फाइलों को clean करता है?

  3. आपकी चींटी संस्करण क्या है? क्या आप यह देखने के लिए एक अलग चींटी संस्करण की कोशिश कर सकते हैं कि आपके पास अभी भी यही समस्या है?

  4. यदि उपरोक्त में से कोई भी आपकी समस्या को हल करता है, तो संकलन के बाद, आप मैन्युअल रूप से .class फ़ाइल टाइमस्टैम्प की जांच कर सकते हैं और इसी .java फ़ाइल के टाइमस्टैम्प से इसकी तुलना कर सकते हैं?

मैं यहाँ स्रोत फ़ोल्डर को संकलित करने के लिए एटी का निर्माण लिखने की कोशिश कर रहा हूं।

 <target name="compile" depends="init">
        <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true">
            <classpath refid="master-classpath"/>
        </javac>

    </target>

मेरी परियोजना में करीब 1000 .java फ़ाइलें हैं I जब भी एक एकल .java फ़ाइल को लक्ष्य के ऊपर बदल दिया जाता है, तो सभी .java फ़ाइलों को संकलित करने के लिए जाता है। जो विकास को बहुत धीमा बनाता है मैं सिर्फ जानना चाहता हूँ कि किसी भी तरह से या कोड को केवल संशोधित या बदल दिया गया है। सभी .java फाइल के बजाय .java फ़ाइल को संकलित करने के लिए कार्य के व्यवहार को बदलने के लिए।

क्रिप्या मेरि सहायता करे।


इसलिए अगर आप किसी भी आश्रित कार्य में क्लास डायरेक्टरी को नहीं हटा रहे हैं तो 'क्लीन' जवैक कार्य में स्वाभाविक रूप से केवल परिवर्तित जावा फाइलों को संकलित किया गया है। यह बॉक्स फीचर से बाहर है जो जवाक कार्य प्रदान करता है। आशा करता हूँ की ये काम करेगा।


स्ट्रिंग की तुलना करने के मुख्य रूप से 4 तरीके हैं:

  1. "== ऑपरेटर": यह केवल स्ट्रिंग ऑब्जेक्ट के संदर्भ चर की तुलना करता है। तो यह आपको अप्रत्याशित परिणाम दे सकता है कि आपने स्ट्रिंग का निर्माण कैसे किया है अर्थात स्ट्रिंग क्लास के कंस्ट्रक्टर का उपयोग करके या बस दोहरे उद्धरण चिह्नों का उपयोग करके दोनों को अलग-अलग (ढेर और पूल में) स्मृति मिलती है।
  2. "बराबर (ऑब्जेक्ट) विधि": यह ऑब्जेक्ट क्लास की विधि है और स्ट्रिंग क्लास द्वारा ओवरलोस्ड है। यह पूरे स्ट्रिंग और IS CASE SENSITIVE की तुलना करता है।
  3. "equalsIgnoreCase (स्ट्रिंग) विधि": यह स्ट्रिंग क्लास की विधि है और पूरे स्ट्रिंग और IS CAS CAS SENSITIVE की तुलना करती है।
  4. "तुलना (स्ट्रिंग) विधि": चरित्र द्वारा दोनों स्ट्रिंग्स चरित्र की तुलना करें और उनका अंतर लौटाएं यदि लौटाया गया मान 0 है, तो इसका मतलब है कि स्ट्रिंग्स बराबर है।




java performance ant compilation