मेरे पास जावा स्प्रिंग प्रोजेक्ट है, जिसे मैवेन के साथ कॉन्फ़िगर किया गया है। चूंकि इकाई परीक्षणों की मात्रा और उनकी कॉन्फ़िगरेशन फ़ाइलें तेजी से बढ़ रही हैं, इसलिए मैं परीक्षण गुणों को एक गुण फ़ाइल में केंद्रीकृत करने की कोशिश कर रहा हूं (वही, जिसे प्रोजेक्ट बनाने में उपयोग किया जाता है)।गुण फ़ाइल के लिए जावा पथ निर्दिष्ट करना
इकाई परीक्षण स्थित हैं पेड़ में (, परियोजना पथ के सापेक्ष निश्चित रूप से)
src/test/java/com (...)
उन परीक्षणों के लिए संसाधन फ़ाइलों
src/test/resources(...)
और अंत में कर रहे हैं, गुण फ़ाइल है, जो संसाधन फ़ाइल
@ContextConfiguration(locations = { "classpath:com/initrode/quartz/SyncManagerJobTest-context.xml"})
: पढ़ना चाहिए, अब निर्देशिका
src/main/filters
में है, मैं एक JUnit वर्ग जहां मैं इस तरह विन्यास फाइल स्थान को निर्दिष्ट किया है
विन्यास फाइल SyncManagerJobTest-context.xml में एक लाइन
<context:property-placeholder location="/src/main/filters/deploy.local.properties"/>
इस गुण में परिणाम फ़ाइल निर्देशिका से पढ़ने के लिए नहीं है। मैं जो पढ़ना चाहता हूं वह गुण फ़ाइल है, जो src/main/filter के अंतर्गत स्थित है। मैंने ऊपर की निर्देशिका को पार करने के लिए ../../ का उपयोग करने का प्रयास किया, लेकिन इससे मदद नहीं मिली। क्लासपाथ का उपयोग करना: या तो काम नहीं किया। मैं "फ़ाइल:" के साथ एक पूर्ण पथ का उपयोग कर सकता हूं, लेकिन इस परियोजना में प्रत्येक डेवलपर को कॉन्फ़िगरेशन को संशोधित करने की आवश्यकता होगी, जो कि अच्छा नहीं है।
संक्षेप में, सवाल यह है: मैं src/test/resource/में प्रसंस्करण फ़ाइल को src/main/filter में गुण फ़ाइल को पढ़ने के लिए कैसे मजबूर कर सकता हूं?
और संबंधित बोनस प्रश्न: जावा वातावरण में फ़ाइलों को संभालने पर, "फ़ाइल:" और "कक्षापथ" से अन्य संशोधक हैं?
गुण फ़ाइल का स्थान शायद सबसे अच्छा नहीं है, लेकिन जैसा कि मैंने एक मौजूदा परियोजना पर काम कर रहा हूँ, मैं तो बस छोड़ देंगे यह .. हमारे पास विभिन्न उत्पादन वातावरण के लिए तीन अलग-अलग गुण हैं। एप्लिकेशन को विकसित करते समय, कॉन्फ़िगर करने के लिए कई गुण हैं, डीबी, एलडीएपी और इसी तरह। दो संसाधन स्थानों के होने का मतलब दो गुण फाइलों को बनाए रखना होगा, जिन्हें मैं आदर्श नहीं मानता। लिंक के लिए धन्यवाद, मैं उन्हें जांचूंगा। – simon
मुझे समझ में नहीं आ रहा है कि "दो संसाधन स्थान होने" से आपका क्या मतलब है और यह वैसे भी एक आवश्यकता नहीं है। लेकिन, यदि आपके पास अलग-अलग उत्पादन वातावरण हैं, तो क्या आपको प्रत्येक वातावरण के लिए अलग-अलग प्रबंधन नहीं करना है? लिंक इस बारे में हैं (एक मेवेन तरीके में)। –
@ पास्कल यह एक अच्छा बिंदु (+1) है, लेकिन सवाल के अन्य हिस्सों से मुझे लगता है कि ओपी का अर्थ मेवेन अर्थ में फ़िल्टर नहीं हो सकता है। इसलिए फ़ाइलों को शायद src/main/संसाधनों में जाना चाहिए। मौजूदा परियोजना संरचना के साथ काम करते समय यह संभव नहीं हो सकता है, इसलिए मेरा कामकाज –