के अंदर मेवेन सेटिंग्स.एक्सएमएल गुणों का उपयोग करना मेरे पास ~/.m2
निर्देशिका में एक मेवेन settings.xml
फ़ाइल है; यह इस तरह दिखता है:वसंत संदर्भ
<settings>
<profiles>
<profile>
<id>mike</id>
<properties>
<db.driver>org.postgresql.Driver</db.driver>
<db.type>postgresql</db.type>
<db.host>localhost</db.host>
<db.port>5432</db.port>
<db.url>jdbc:${db.type}://${db.host}:${db.port}/dbname</db.url>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>mike</activeProfile>
</activeProfiles>
<servers>
<server>
<id>server_id</id>
<username>mike</username>
<password>{some_encrypted_password}</password>
</server>
</servers>
</settings>
मैं Maven के integration-test
चरण के अंदर दो बार
- एक बार इन गुणों का उपयोग करने के लिए स्थापित और मेरे डेटाबेस फाड़ करना चाहते हैं। मेवेन फ़िल्टरिंग का उपयोग करना, यह पूरी तरह से काम कर रहा है।
- मेरा स्प्रिंग एप्लिकेशन चलाते समय दूसरी बार, जिसका अर्थ है कि मुझे इन गुणों को मैवेन के
resources:resources
चरण के दौरान मेरीservlet-context.xml
फ़ाइल में प्रतिस्थापित करने की आवश्यकता है।settings.xml
के ऊपरी भाग में गुणों के लिए, जैसे${db.url}
, यह ठीक काम करता है। मैं समझ नहीं सकता कि स्प्रिंगservlet-context.xml
फ़ाइल में मेरा डेटाबेस उपयोगकर्ता नाम और (डिक्रिप्ट) पासवर्ड कैसे प्रतिस्थापित करें।
मेरी servlet-context.xml
फ़ाइल का उचित हिस्सा लगता है:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>${db.driver}</value></property>
<property name="url"><value>${db.url}</value></property>
<property name="username"><value>${username}</value></property>
<property name="password"><value>${password}</value></property>
</bean>
अंत यहाँ लक्ष्य है हर डेवलपर (एकीकरण परीक्षण के लिए अपने स्वयं के मशीन पर और डेटाबेस) अपने स्वयं के Maven सेटिंग्स के लिए के लिए। .. और जेनकिंस सर्वर पर एक समान सेटअप। हम एक आम उपयोगकर्ता नाम/पासवर्ड/आदि साझा नहीं करना चाहते हैं।
रीकंपलिंग के बारे में वह बिंदु मान्य है। मुझे निश्चित रूप से और अधिक देखना होगा, क्योंकि यह एक विरोधी पैटर्न है जिसे मैं टालने की उम्मीद कर रहा हूं। एक सीआई/सीडी शैली में चलाने के लिए निश्चित रूप से इसकी आवश्यकता है। लेकिन साथ ही, मैं पहले से मौजूद जानकारी का पुन: उपयोग करने का प्रयास कर रहा हूं और 'सेटिंग्स में संग्रहीत है।xml' – Mike
ठीक है, यह वाकई अच्छा है कि आप इसे पुनः प्रतिक्रिया देने जा रहे हैं। अभी के लिए, जैसा कि मैंने कहा, इस वेब संसाधन फ़िल्टरिंग का उपयोग करें। यह काम करना चाहिए और आपको यह कॉन्फ़िगरेशन एक स्थान पर सक्षम करने में सक्षम होना चाहिए, जैसा आपने कहा था। –
वसंत 3.1 ने इस प्रकार के परिदृश्य के लिए नई सामग्री का एक भार प्रस्तुत किया: http://blog.springsource.org/2011/02/15/spring-3-1-m1-unified-property-management/ – artbristol