2010-06-16 12 views
15

सभी अपनी परियोजनाओं और उनके संस्करणों एक गुण में परिभाषित कर रहे हैं इस तरह दायर:मैं फ़ाइल से गुणों को कैसे पुन: सक्रिय कर सकता हूं?

ProjectNameA=0.0.1 
ProjectNameB=1.4.2 

मैं सभी परियोजनाओं से अधिक पुनरावृति, और एक चींटी लिपि में उनके नाम और संस्करणों का उपयोग करना चाहते हैं।

वर्तमान में मैं संपत्ति कार्य का उपयोग कर पूरी फ़ाइल से पढ़ें, फिर इस तरह पाश के लिए एक में एक दी गई सूची में से अधिक पुनरावृति:

<for list="ProjectNameA,ProjectNameB" param="project"> 
    <sequential> 
    <echo message="@{project} has version ${@{project}}" /> 
    </sequential> 
</for> 

मैं में इस परियोजना के नाम की कड़ी मेहनत से कोडिंग कैसे बच सकते हैं पाश के लिए? मूल रूप से प्रत्येक पंक्ति पर फिर से शुरू होता है और जैसा कि मैं जाता हूं, नाम और संस्करण का संस्करण निकालता हूं।

उत्तर

12

के रूप में आप पहले से ही antcontrib for उपयोग कर रहे हैं, कैसे के बारे में propertyselector कार्य का इस्तेमाल कर रही देखकर:

<property file="properties.txt" prefix="projects."/> 
<propertyselector property="projects" match="projects\.(.*)" select="\1"/> 

<property file="properties.txt" /> 
<for list="${projects}" param="project"> 
    ... 
</for> 

विचार यहाँ projects उपसर्ग के साथ एक बार गुण पढ़ा है, और जिसके परिणामस्वरूप के सेट का उपयोग करने के लिए है propertyselector कार्य के साथ परियोजनाओं की अल्पविराम से अलग सूची बनाने के लिए गुण। फिर गुण उपसर्ग के बिना फिर से पढ़े जाते हैं, ताकि आपका लूप पहले से आगे बढ़ सके।

+0

किसी दिए गए बग से जोड़ा गया संबंध, और तत्व के लिए अनुक्रमिक विलोपन इसे और अधिक स्पष्ट बनाने के लिए। –

+0

एक संपादन जोड़ने के लिए चाहता था, लेकिन इसे अस्वीकार कर दिया गया था। तो मैं इसे एक टिप्पणी के रूप में जोड़ता हूं: कार्य के लिए नवीनतम जार में antcontrib.properties में किसी भी तरह सूचीबद्ध नहीं है। वर्कअराउंड इसे एक कार्यक्षेत्र में नाम के साथ एक वर्ग के रूप में शामिल करना है जैसे कि यह बग रिपोर्ट में http://sourceforge.net/tracker/?func=detail&aid=2838574&group_id=36177&atid=416920 –

+0

पोस्ट मार्टिन के लिए धन्यवाद । उन लोगों के लिए जिनके पास चींटी contrib के लिए चीजें सेट नहीं हैं, आपको निम्न पंक्ति की भी आवश्यकता हो सकती है: संदर्भ: http: // ant-contrib। sourceforge.net/tasks/index.html#intro –

0

कुछ जो आप ध्यान में रखना चाहते हैं, अगर आप अतिरिक्त पढ़ रहे हैं। प्रॉपर्टी फाइलें (build.properties के अलावा) स्कॉइंग है। यदि आप एक अतिरिक्त फ़ाइल (संपत्ति फ़ाइल = "foo.property") टैग के माध्यम से पढ़ते हैं, तो चींटी दिखाएगी कि फ़ाइल पढ़ी गई थी, और गुण लोड हो गए थे। हालांकि, जब आप उन्हें संदर्भित करते हैं, तो वे गैर-परिभाषित होते हैं।

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

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