मेरे पास एक साधारण जावा मेवेन प्रोजेक्ट है। क्लासपाथ से एक्सएमएल कॉन्फ़िगरेशन फ़ाइल लोड करने की आवश्यकता होने पर मेरी कक्षाओं में से एक। मैं जार का उत्पादन करते समय ऐसी एक्सएमएल फ़ाइल को पैकेज नहीं करना चाहता हूं लेकिन मैं एक confffferer के तहत एक ज़िप असेंबली में एक डिफ़ॉल्ट xml फ़ाइल शामिल करना चाहता हूं और मैं यह भी चाहता हूं कि यह डिफ़ॉल्ट एक्सएमएल परीक्षण के लिए यूनिट परीक्षणों में उपलब्ध हो।मैवेन प्रोजेक्ट के पथ में जहां मुझे कॉन्फ़िगरेशन फ़ाइलों को रखा जाना चाहिए जिन्हें संसाधन नहीं माना जाता है
मैं इसे देख यह डिफ़ॉल्ट एक्सएमएल के 2 संभावित स्थानों देखते हैं:
src/main/resources/conf/default.xml
src/main/conf/default.xml
दोनों समाधान की मांग विशेष पोम कार्रवाई:
में समाधान 1, मुझे बी के दौरान फ़ोल्डर को लक्षित करने के लिए ऑटो कॉपी मिलती है उल्ड जिसका मतलब है कि यह परीक्षण में उपलब्ध है लेकिन मैं इसे उत्पादित जार में भी प्राप्त करता हूं जिसे मैं नहीं चाहता हूं।
समाधान 2 में, मुझे जार मिलता है क्योंकि मुझे यह चाहिए (एक्सएमएल से मुक्त) लेकिन मुझे परीक्षण के लिए उपलब्ध होने के लिए मैन्युअल रूप से एक्सएमएल को लक्षित फ़ोल्डर में कॉपी करना होगा। (मैं टेस्ट क्लासपाथ में src के उपफोल्डर जोड़ना नहीं चाहता हूं। मुझे लगता है कि यह खराब अभ्यास है)।
प्रश्न: दोनों का सबसे अच्छा समाधान क्या है?
- यदि सही 2 है, तो फ़ोल्डर को लक्षित करने के लिए इसे कॉपी करने का सबसे अच्छा तरीका क्या है?
- क्या कोई अन्य समाधान बेहतर है और उन दोनों की तुलना में अधिक आम है?
(मैंने Where should I put application configuration files for a Maven project? भी पढ़ा है, लेकिन मैं "कॉन्फ़्रेंस पर सम्मेलन" बिंदु से सबसे "सही समाधान" जानना चाहता हूं और यह लिंक कुछ कॉन्फ़िगरेशन प्रकार समाधान प्रदान करता है लेकिन कोई सम्मेलन उन्मुख नहीं है। शायद वहां नहीं है एक लेकिन मैं वैसे भी पूछता हूं। इसके अलावा समाधानों में एंट्रुन प्लगइन और ऐपएस्सेबलर प्लगइन शामिल है और मुझे आश्चर्य है कि मैं इसे बाहर कर सकता हूं।)
पीआर हैं दोनों समाधानों के साथ प्रतीक: 1./संसाधन के रूप में 'conf' घोषित करना अभी भी इसे जार में शामिल करता है, और हमें छोड़ने का कोई आसान तरीका नहीं छोड़ता है; 2./संसाधनों के अंदर 'conf' बनाना, और प्लगइन में इसे छोड़कर यह वर्ग पथ की जड़ पर नहीं होता है। – YoYo
किसी कारण से यह सामान्य रूप से कुछ उपयोगी उत्तरों में से एक है, "जब मैवेन जार से कुछ बाहर निकालना है" के लिए ... अगर यह ओपी का जवाब नहीं देता है, तो भी यह 'maven-jar' का उपयोग करने का एक शानदार उदाहरण है -plugin' – mmcrae