मेरे पास एक चींटी स्क्रिप्ट है जो 'copy' task का उपयोग करके एक कॉपी ऑपरेशन करती है। यह विंडोज के लिए लिखा गया था, और 'todir' तर्क के रूप में एक हार्डकोडेड सी: \ पथ है। मुझे लगता है कि 'exec' कार्य में ओएस तर्क है, क्या ओएस पर आधारित प्रतिलिपि बनाने का एक समान तरीका है?क्या मैं चींटी प्रतिलिपि कार्य ओएस-विशिष्ट बना सकता हूं?
उत्तर
मैं एक संपत्ति में पथ डालने की सिफारिश करता हूं, फिर वर्तमान ओएस के आधार पर सशर्त संपत्ति को सेट करता हूं।
<condition property="foo.path" value="C:\Foo\Dir">
<os family="windows"/>
</condition>
<condition property="foo.path" value="/home/foo/dir">
<os family="unix"/>
</condition>
<fail unless="foo.path">No foo.path set for this OS!</fail>
साइड लाभ के रूप में, एक बार यह संपत्ति में हो जाने पर आप एंट स्क्रिप्ट को संपादित किए बिना इसे ओवरराइड कर सकते हैं।
आप एक चर का उपयोग नहीं कर सकते हैं और इस प्रकार के आधार पर इसे आवंटित कर सकते हैं? आप इसे build.properties
फ़ाइल में डाल सकते हैं। या आप इसे condition का उपयोग करके असाइन कर सकते हैं।
आप अलग अलग प्रतिलिपि कार्यों के शाखा हालत काम इस्तेमाल कर सकते हैं ... चींटी के मैनुअल से:
<condition property="isMacOsButNotMacOsX">
<and>
<os family="mac"/>
<not>
<os family="unix"/>
</not>
</and>
एक चर अपने ऑपरेशन के रूट फ़ोल्डर है कि घोषित। प्रतिलिपि कार्य सहित, उस चर के साथ अपने फ़ोल्डरों को उपसर्ग करें।
एक सशर्त का उपयोग कर ओएस पर आधारित चर सेट करें, या इसे एंटी स्क्रिप्ट के लिए तर्क के रूप में पास करें।
ओएस विशिष्ट चर के पहले पोस्ट किए गए सुझाव काम करेंगे, लेकिन कई बार आप केवल "सी:" उपसर्ग को छोड़ सकते हैं और आगे स्लैश (यूनिक्स शैली) फ़ाइल पथ का उपयोग कर सकते हैं और यह विंडोज और यूनिक्स सिस्टम दोनों पर काम करेगा।
तो, आप फ़ाइलों की प्रतिलिपि बनाने "C:/tmp" करना चाहते हैं तो विंडोज पर और यूनिक्स पर "/ tmp", आप की तरह कुछ इस्तेमाल कर सकते हैं:
<copy todir="/tmp" overwrite="true" >
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
</copy>
आप/निर्धारित करने की आवश्यकता चाहते हैं, तो
<condition property="root.drive" value="C:/" else="/">
<os family="windows" />
</condition>
<copy todir="${root.drive}tmp" overwrite="true" >
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
</copy>
चींटी-योगदान < osfamily/> कार्य है: एक सशर्त ओएस के आधार पर पथ, यह रूप में सरल किया जा सकता। यह ओएस के परिवार को एक संपत्ति के सामने उजागर करेगा (जिसे आप नाम निर्दिष्ट करते हैं)। यह कुछ लाभ का हो सकता है।
- 1. चींटी प्रतिलिपि
- 2. रूबी: मैं इस सरणी की प्रतिलिपि कैसे बना सकता हूं?
- 3. क्या मैं एक चींटी कार्य लिख सकता हूं जो किसी अन्य चींटी कार्य से निष्पादित होने पर पैरामीटर लेता है?
- 4. मैं क्यूटी में ऑब्जेक्ट की प्रतिलिपि कैसे बना सकता हूं?
- 5. मैं प्रगति पट्टी कैसे बना सकता हूं (सीपी एक निर्देशिका की प्रतिलिपि बना सकता है)?
- 6. चींटी स्कैप कार्य विफलता
- 7. विंडोज शेयर (एसएमबी) की प्रतिलिपि बनाने के लिए चींटी कार्य
- 8. क्या मैं प्रतिलिपि बना सकता हूं: OLD और: ओरेकल संग्रहीत प्रक्रिया में/नए छद्म-रिकॉर्ड?
- 9. चींटी JUnit कार्य विस्तार
- 10. मैं विस्तारित टेक्स्टबॉक्स कैसे बना सकता हूं?
- 11. चींटी के JUnit कार्य
- 12. चींटी जूनिट कार्य
- 13. मैं निर्देशिका पेड़ की प्रतिलिपि कैसे बना सकता हूं लेकिन .svn निर्देशिकाओं को बाहर कर सकता हूं?
- 14. क्या मैं प्रतिलिपि को साफ कर सकता हूं?
- 15. ग्रहण, चींटी और कस्टम कार्य
- 16. 1.6 कार्य प्रतिलिपि
- 17. एमएसबिल्ड: ज़िप/प्रतिलिपि कार्य
- 18. मैं लॉकलेस कतार कैसे बना सकता हूं?
- 19. मैं एसवीएन के साथ एक संशोधित कामकाजी प्रतिलिपि कैसे बना सकता हूं?
- 20. क्या कोई प्रोग्राम स्वयं की प्रतिलिपि बना सकता है
- 21. मैं चींटी में जावैक कार्य में स्रोतों को कैसे बहिष्कृत कर सकता हूं?
- 22. मैं चींटी 'ReplaceRegExp' कार्य में गणित कार्यों को कैसे कर सकता हूं?
- 23. मैं एक चींटी कार्य में टाइमआउट कैसे लागू कर सकता हूं?
- 24. मैं चींटी टैर कार्य का उपयोग कैसे कर सकता हूं और फ़ाइल अनुमतियों को संरक्षित कर सकता हूं?
- 25. मैं जावा सैंडबॉक्स कैसे बना सकता हूं?
- 26. फाइन ट्यूनिंग FindBugs चींटी कार्य
- 27. चींटी निष्पादन कार्य: मैं कंसोल स्टडीन से इनपुट कैसे पढ़ सकता हूं?
- 28. मैं डिमन थ्रेड कैसे बना सकता हूं?
- 29. मैं एक मौजूदा जावा प्रोजेक्ट के लिए चींटी बिल्डर फ़ाइल (build.xml) कैसे बना सकता हूं?
- 30. मैं वर्टिकल यूआईस्लाइडर कैसे बना सकता हूं?
क्या एंटी में पथ घोषित करने का कोई तरीका नहीं है जिसे विंडोज और लिनक्स के तहत समान रूप से माना जाता है? मैं सिर्फ उत्सुक हूँ। –