2011-01-11 4 views
12

मुझे एक आम समस्या है और इसे हल करने के लिए शायद अनगिनत तरीके हैं। मैं इस विशिष्ट परिदृश्य के लिए एक सुरुचिपूर्ण, सरल समाधान की तलाश में हूं:ग्रहण में चर के आधार पर चींटी गुण कैसे सेट करें?

मेरे पास एंट बिल्ड फ़ाइल (build.xml) के साथ एक्लिप्स में एक प्रोजेक्ट है, बिल्ड फ़ाइल एक प्रॉपर्टी फ़ाइल (build.properties) का उपयोग करती है।

project.root = /path/to/eclipse/workspace/projectName 

या अधिमानतः: कि संपत्ति फ़ाइल में, मैं एक संपत्ति है कि इस तरह के रूप में ग्रहण परियोजना के रूट निर्देशिका के लिए अंक निर्धारित करना चाहते हैं

project.root = ${path.to.eclipse.workspace}/projectName 

मैं इस तरह से यह करने के लिए कैसे करते हैं कि:

  1. परियोजना जड़ को अलग अलग रास्तों के साथ विभिन्न मशीनों (यानी एक टीम के वातावरण में)
  2. पर काम करता है चींटी build.xml फ़ाइल exe होने के लिए अनुमति देता है ग्रहण के अंदर काटा
  3. चींटी build.xml फ़ाइल को ग्रहण के बाहर निष्पादित करने की अनुमति देता है (यानी। कमांड लाइन) से
  4. build.properties फ़ाइल परियोजना जड़ के अलावा किसी अन्य निर्देशिका में मौजूद करने की अनुमति देता
+0

मैं भी एक आंशिक समाधान है कि सुंदर ढंग से संबोधित करते हैं चिंताओं # 1 और 2 # करने के लिए समझौता चाहते हैं। संख्या 3 और 4 बहुत कठिन हैं। – gMale

उत्तर

7

मुझे लगता है कि मैं क्या build.properties फ़ाइल में निम्न को जोड़ने के लिए है के लिए देख रहा हूँ:

project.root = ${basedir} 

वैकल्पिक रूप से, मैं सिर्फ basedir संपत्ति जब भी project.root की जरूरत है उपयोग कर सकते हैं ।

मुझे source code for ivy.properties पर देखा गया और मैंने आधारित संपत्ति का उपयोग किया। मैं तो बस का परीक्षण किया और पता लगाया कि इस संपत्ति जब इस तरह के रूप में एक अलग निर्देशिका से चींटी के लिए कोई कॉल करने से दोनों ग्रहण अंदर से और कमांड लाइन से के साथ ही विभिन्न मशीनों पर काम करता है:

ant -f /path/to/eclipse/workspace/projectName/build.xml 

जब मैं एक मिनट मिलता है, मैं सत्यापित करूंगा कि यह विभिन्न स्थानों में संपत्ति फ़ाइल आयात करते समय भी काम करता है (जैसे अंदर src/main/resource/config/ivy/ivysettings.xml)।

+0

धन्यवाद, मेरी भी मदद की। –

8

विंडो देखते हैं -> वरीयताएँ - चाहिए> गुण कस्टम चींटी गुण परिभाषित करने के लिए है कि -> चींटी -> रनटाइम ग्रहण से जुड़ी किसी भी चींटी स्क्रिप्ट के लिए उपलब्ध हो। कमांड लाइन से स्क्रिप्ट का आविष्कार करते समय बस उसी संपत्ति को मैन्युअल रूप से सेट करें।

आपकी build.properties फ़ाइल जहां चाहें मौजूद हो सकती है। अपनी लिपि में आयात करने के लिए सामान्य चींटी सुविधाओं का उपयोग करें।

+0

जवाब देने के लिए समय लेने के लिए धन्यवाद। दुर्भाग्यवश, आपकी प्रतिक्रिया उपरोक्त किसी भी मुद्दे को सीधे संबोधित नहीं करती है क्योंकि 1) चींटी रनटाइम गुणों में प्रोजेक्ट रूट पथ के लिए कोई प्रविष्टि नहीं है। मुझे लगता है कि मैं $ {workspace_loc} या गुण सूची के समान कुछ जोड़ सकता हूं लेकिन यह ग्रहण के बाहर काम नहीं करेगा। 2) कमांड लाइन से स्क्रिप्ट का आविष्कार करते समय मैन्युअल रूप से एक संपत्ति सेट करना टीम के पर्यावरण के लिए अच्छी तरह से स्केल नहीं करता है। 3) आखिरकार, जब गुण फ़ाइल आयात की जाती है तो सापेक्ष पथ बदल सकते हैं इसलिए पूर्ण पथ आवश्यक हैं, जो एक समस्या है। – gMale

3

मेरी परियोजना के लिए उपलब्धि।

ProjectName <dir> 
|_ ant <dir> 
    |_ ant.xml 

आपका मामला बस चींटी xml फ़ाइल को बदल सकते हैं, <project default="main" basedir="../"/>

तब मैं परियोजना जड़

जैसे की चर का उपयोग कर प्राप्त कर सकते हैं<echo message= "Project Root: ${basedir}" />

3

अगर आप तुच्छ basedir सामान से अधिक की आवश्यकता =
Ant4Eclipse -
आप मदद कर सकते हैं - चींटी के भीतर से विन्यास ग्रहण करने के लिए उपयोग के लिए चींटी कार्यों की एक गुच्छा। बस के रूप में इसका इस्तेमाल करते हैं या कोड grep और प्रासंगिक भागों लेने ..

+0

धन्यवाद, मैं इसमें देख लूंगा। यह उपयोगी लगता है। – gMale

1

आप ग्रहण

अपने चींटी बिल्डर गुण पर जाएं से अपने चींटी बिल्ड के लिए रिश्तेदार गुण ग्रहण सेट कर सकते हैं और तर्क अनुभाग में आप गुण सेट कर सकते हैं

-Dworkspace="${workspace_loc}" -Dproject_dir="${project_loc}" 

(यहां workspace_loc और project_loc ग्रहण चर हैं) का उपयोग कर-डी का उपयोग करना। इन गुणों, नियमित रूप से गुण की तरह अपने चींटी निर्माण स्क्रिप्ट में पहुँचा जा सकता है उदाहरण के लिए:

<echo message="${workspace}" /> 
<echo message="${project_dir}" /> 

reference screenshot

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