2009-10-20 13 views
36

से कार्य निर्देशिका ढूंढें क्या यह बताना संभव है कि उपयोगकर्ता किस निर्देशिका से चींटी चलाता है?चींटी

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

<property environment="env" /> 
<echo>${env.CWD}</echo> 

लेकिन वह काम नहीं करता:

मैं इस कोशिश की।

+1

CWD एक विशिष्ट वातावरण चर का सेट विंडोज का हिस्सा नहीं है। आप इसे कैसे सेट कर रहे हैं? प्रदान किया गया जवाब @Aasaph रास्ता अधिक strightforward है। – DaveParillo

उत्तर

57

System.getProperties() द्वारा लौटाई गई संपूर्ण गुण वस्तु एंटी द्वारा उजागर की जाती है। इसे आज़माएं:

<echo>${user.dir}</echo> 
39

${basedir} भी उपयोगी हो सकता है।

लिनक्स के तहत नेटबीन्स में, ${user.dir} हमेशा ${user.home} के बराबर लगता है, लेकिन ${basedir} मुझे वास्तविक निर्देशिका देता है जहां चींटी से भागती है (इसलिए यह मुझे परियोजना डीआईआर देती है)।

+7

डिफ़ॉल्ट रूप से, आधारित निर्माता buildfile की मूल निर्देशिका है। यह आवश्यक रूप से * काम करने वाली निर्देशिका के समान नहीं है। * –

+0

वास्तव में वास्तव में मेरी समस्या है। जब मैं अपनी एंटी स्क्रिप्ट को किसी अन्य निर्देशिका में एक अलग चींटी स्क्रिप्ट से आह्वान करता हूं तो मैं यह नहीं समझ सकता कि मेरी कार्यशील निर्देशिका को कुछ अन्य निर्देशिका कैसे प्राप्त करें। मैं user.dir को कॉलिंग चींटी स्क्रिप्ट की निर्देशिका देखता हूं, और आधारित यह निर्देशिका है कि मैं अपनी चींटी स्क्रिप्ट को निष्पादित करना चाहता हूं। मैं अपनी एंटी स्क्रिप्ट को ' 'का उपयोग करके कॉल करता हूं, लेकिन यह केवल आधारित काम करता है, न कि वर्तमान कार्यशील निर्देशिका। – searchengine27

2

जब तक आप Windows का उपयोग कर रहे हैं, यह आप वर्तमान कार्यशील निर्देशिका दे देंगे:

<exec executable="sh" outputproperty="my.cwd"><arg line="-c pwd"/></exec> 
+4

आदेश काम करता है, लेकिन यह चींटी भावना के खिलाफ है "एक बार लिखें, हर जगह बनाएं" क्योंकि यह विंडोज के तहत नहीं चलता है। –