2011-07-01 12 views
10

मैं कुछ समय के लिए "फाइलसेट और पथ के बीच मतभेद" लेख के लिए गुगल रहा हूं, लेकिन कुछ भी उपयोगी नहीं मिला है।नेस्टेड पथ और फाइलसेट के बीच क्या अंतर है?

<path id="somePathId"> 
    <pathelement path="someDir"/> 
</path> 

<path id="someId"> 
    <path refid="somePathId" /> 
</path> 

और

<path id="someId"> 
    <fileset dir="someDir"> 
    <include name="*.*"> 
    </fileset> 
</path> 

: उदाहरण के लिए, निम्नलिखित (एक someDir निर्देशिका कहते हैं, वहाँ है, जो .jar फ़ाइलें हैं और कोई उपनिर्देशिका है) के बीच क्या अंतर है?

+0

वैसे, एक फ़ाइल-फाइलसेट निर्दिष्ट करने की एक संभावना है। क्या इसके बजाय नेस्टेड का उपयोग करना बेहतर नहीं है? – Dmitry

+0

धन्यवाद, संपादित – Dmitry

उत्तर

2

वे विभिन्न स्थितियों में उपयोग किए जाते हैं।

fileset फ़ाइलों का समूह निर्दिष्ट करने के लिए उपयोग किया जाता है। आप केवल उन फ़ाइलों को प्राप्त करने के लिए selector s और patternset s का उपयोग कर सकते हैं।

classpath क्लासपाथ संदर्भ निर्दिष्ट करने के लिए उपयोग किया जाता है। classpath को एक जार (location="..."), ; या : जार की अलग सूची (path="...") या नेस्टेड संसाधन संग्रह (जैसे fileset) के साथ निर्दिष्ट किया जा सकता है।

इसके अलावा अगर आप उन्हें डिबग करने के लिए चाहते हैं, यह अलग है:

<echo message="Build-path: ${toString:build-path}" /> 

बनाम

<property name="debug.classpath" refid="classpath"/> 
<echo message="Classpath = ${debug.classpath}"/> 

अपनी स्क्रिप्ट का सवाल है,

<path id="somePathId"> 
    <pathelement location="someDir"/> 
</path> 

मैं इसे परीक्षण नहीं किया था, लेकिन अनुसार documentationpath= पर ; याकी अपेक्षा करता हैजार की अलग सूची। यह आपके दूसरे उदाहरण के समान नहीं है।

+0

बहुत बहुत धन्यवाद! वास्तव में मदद की! – Dmitry

2

एक <path> और एक <fileset> के बीच प्रमुख अंतर यह है कि <fileset> में आप अगर आप को शामिल करने या फ़ाइलों के निश्चित प्रकार, एक पथ के भीतर फ़ाइलों की अपनी एक समूह ... आवश्यक नहीं सभी फाइलों को बाहर (मूल रूप से करना चाहते हैं निर्दिष्ट कर सकते हैं), उदाहरण के लिए:

<path id="someId"> 
    <fileset dir="someDir"> 
    <include name="*.java"> 
    <include name="*.properties"> 
    </fileset> 
</path> 
+0

AFAIK यह उदाहरण काम नहीं करेगा क्योंकि यह दोनों अभिव्यक्तियों से मेल खाने वाली फ़ाइलों की खोज करेगा, यानी '* .java' और' * .properties'। – Thresh

+2

हां, यही वह है जो मैं कहने की कोशिश कर रहा था .. मैं इन दोनों फ़ाइलों की खोज कर रहा हूं। यदि आप किसी पैटर्न को बहिष्कृत नहीं कर सकते हैं, तो आप '<बहिष्कृत करें ...' – Arpit

+0

का उपयोग कर सकते हैं वैसे भी, उत्तर के लिए धन्यवाद! – Dmitry

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