2010-02-25 17 views
22

मेरे पास मेरे प्रॉपर्टी में ApplicationResources.properties नामक एक प्रॉपर्टी फ़ाइल है जो पर्यावरण के आधार पर बदलती है। आइए हम कहें कि संपत्ति है:Maven प्रोफ़ाइल के आधार पर फ़ाइल में एक मान बदलें

 resources.location=/home/username/resources 

और यह मान अलग होता है जब आवेदन विकास के दौरान निष्पादित किया जाता है और जब आवेदन उत्पादन में होता है।

मुझे पता है कि मैं विभिन्न वातावरण में विभिन्न निर्माण कार्यों को करने के लिए मेवेन में विभिन्न प्रोफाइल का उपयोग कर सकता हूं। मैं जो करना चाहता हूं वह किसी भी तरह संसाधनों के मूल्य को प्रतिस्थापित करता है। उपयोग में मैवेन प्रोफाइल के आधार पर गुण फ़ाइल में स्थानान्तरण। क्या यह भी संभव है?

उत्तर

46

मैं जो करना चाहता हूं वह किसी भी तरह संसाधनों के मूल्य को प्रतिस्थापित करता है। उपयोग में मैवेन प्रोफाइल के आधार पर गुण फ़ाइल में स्थानान्तरण। क्या यह भी संभव है?

हां यह है। प्रत्येक प्रोफाइल में प्रतिस्थापित करने के लिए संसाधनों को फ़िल्टर करना और मान को परिभाषित करना सक्रिय करें।

अपने ApplicationResources.properties में, इस तरह बदलने के लिए एक टोकन की घोषणा:

resources.location=${your.location} 

अपने पोम में, इस तरह उचित <resource> के लिए एक <filtering> टैग को जोड़ने और इसे सेट करने के लिए सच:

<project> 
    ... 
    <build> 
    ... 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     <filtering>true</filtering> 
     </resource> 
     ... 
    </resources> 
    ... 
    </build> 
    ... 
</project> 

फिर, प्रत्येक प्रोफ़ाइल के अंदर <properties> तत्व के भीतर <your.location> तत्व जोड़ें:

<project> 
    ... 
    <profiles> 
    <profile> 
     <id>my-profile</id> 
     ... 
     <properties> 
     <your.location>/home/username/resources</your.location> 
     </properties> 
     ... 
    </profile> 
    ... 
    </profiles> 
</project> 

संसाधनों के फ़िल्टरिंग पर अधिक here और here

+1

@ पास्कल थिवेन्ट धन्यवाद। यह एक उत्कृष्ट स्पष्टीकरण –

+0

+1 I दूसरा है कि एक: डी – ant

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