2012-02-01 11 views
5

चूंकि मेरी चींटी फ़ाइल काफी जटिल है, इसलिए मैं अपने क्लासपाथ-तत्वों को मॉड्यूलर करना चाहता हूं।चींटी स्क्रिप्ट्स में मॉड्यूलरिंग क्लासपाथ (उदा। के माध्यम से)

वर्तमान में, मैं निम्नलिखित तरीके से refid का उपयोग करें:

<path id="compile.classpath"> 
    <pathelement path="foo"/> 
    <!-- ... --> 
</path> 

<path id="test.classpath"> 
    <path refid="compile.classpath"/> 
    <pathelement path="bar"/> 
    <!-- ... --> 
</path> 

<!-- ... --> 

    <javac> 
     <classpath refid="compile.classpath"/> 
    </javac> 

    <junit> 
     <!-- ... --> 
     <classpath> 
      <path refid="test.classpath"/> 
      <path path="bazz"/> 
     </classpath> 
    </junit> 

<!-- ... --> 

इस एक समझदार दृष्टिकोण है? या क्या कोई बेहतर है?

क्या क्लासपाथ-रेफिड के लिए पथ-आईडी (compile.classpath) का उपयोग करना ठीक है (<javac> में)? (यह वर्तमान में काम करता है, लेकिन refid एक ही प्रकार के होने के लिए तत्वों की आवश्यकता होती है। path के बाद से और classpath दोनों पथ जैसी संरचनाएं हैं, वे एक ही प्रकार के हैं?)

उत्तर

5

मैं सफलतापूर्वक एक पिछले काम में इस दृष्टिकोण का इस्तेमाल किया और यह वास्तव में एकमात्र तरीका था जिससे मैं सब कुछ सचेत रख सकता था।

मैंने अंततः एक अलग ext-libs.xml फ़ाइल में अपनी सभी तृतीय-पक्ष लाइब्रेरी परिभाषाओं को एक कदम आगे बढ़ाया क्योंकि उनमें से कई बहु-पुस्तकालय पुस्तकालय थे और यह सुनिश्चित करना कि मेरे पास उन सभी अंतिम युद्ध फ़ाइलों में शामिल था एक बड़ी परेशानी होने के लिए। इस तरह, मेरे मुख्य build.xml (और अन्य) में, मैं कह सकता हूं, lib.jaxb और मुझे चिंता करने की ज़रूरत नहीं है कि मैं हर जगह फाइल नामों में संस्करण संख्या अपडेट कर दूंगा।

आप अपने टेस्ट क्लासपाथ को बनाने के लिए पहले से ही अपने संकलन क्लासपाथ को विस्तारित करने की चाल को समझ चुके हैं, इसलिए आप सही रास्ते पर हैं।

संक्षेप में, दबाएं।

+0

मेरे दृष्टिकोण (+1) की पुष्टि करने के लिए धन्यवाद। चूंकि मैं हर जगह सभी तृतीय-पक्ष पुस्तकालयों को शामिल नहीं करना चाहता, इसलिए मैंने पथ-तत्वों में संकलन किया है, जैसे compile.classpath और test.classpath, जिसे मैं गठबंधन और विस्तार कर सकता हूं। यह काम करता है, मुझे यकीन नहीं था कि इसके लिए कुछ मानक समाधान है कि मैं चूक गया हूं। – DaveFar

+0

मुझे नहीं पता कि यह मानक है या नहीं, लेकिन यह मेरे लिए काम करता है। – Argyle

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