ant - मैं एक फ़ाइल से संपत्तियों को कैसे पुनरावृति कर सकता हूं?




ant-contrib (2)

जैसा कि आप पहले से ही 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 उपसर्ग के साथ एक बार गुणों को पढ़ने के लिए है, और संपत्ति के चयनकर्ता परियोजना के साथ परियोजनाओं की अल्पविराम से अलग सूची बनाने के लिए गुणों के परिणामस्वरूप सेट का उपयोग करें। फिर प्रॉपिक्स के बिना गुण फिर से पढ़े जाते हैं, ताकि आपका लूप पहले की तरह आगे बढ़ सके।

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

ProjectNameA=0.0.1
ProjectNameB=1.4.2

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

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

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

मैं लूप में प्रोजेक्ट नामों की हार्ड-कोडिंग से कैसे बच सकता हूं? मूल रूप से प्रत्येक पंक्ति पर पुनरावृति करें और नाम और प्रोजेक्ट का संस्करण निकालें जैसा मैं जाता हूं।


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