2010-03-12 9 views
5

मैवेन के लिए नया हूं। मैं एक multimodule परियोजना में फ़िल्टरिंग का उपयोग करना चाहता हूँ। पैरेंट पोम का पैकेजिंग प्रकार पोम पर सेट होता है।Maven2 पोम प्रकार पैकेजिंग के तहत फ़ाइल में फ़िल्टरिंग लागू करना

pom.xml 
    | 
    |______MODULE1 
    |  | 
    |  pom.xml 
    |  File1_needed_to_be_filtered 
    | 
    File2_needed_to_be_filtered 

कृपया ध्यान दें कि Module1 भी multimodule परियोजना है: परियोजना की संरचना इस प्रकार है। तो कृपया मुझे बताएं कि मैं file1 और file2 पर फ़िल्टरिंग कैसे लागू कर सकता हूं। और यदि मैं फ़ाइल 1 पर फ़िल्टरिंग लागू करता हूं, तो संसाधित फ़ाइल कहां संग्रहीत की जाएगी (चूंकि पोम फ़ाइल जिसका पैकेजिंग प्रकार पोम लक्ष्य नामक कोई फ़ोल्डर नहीं बनाता है!) कृपया मेरी मदद करें क्योंकि यह मेरे लिए बहुत महत्वपूर्ण है और इस मुद्दे को संबोधित किया गया है इंटरनेट पर कहीं और नहीं।

उत्तर

0

Maven फिल्टर संसाधन हैं करने के लिए जब नकल, अपने pom.xml में संसाधन निर्देशिका के लिए true को छानने सेट:

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

लेकिन अगर आप संसाधनों फ़िल्टर करना चाहते हैं, उन लोगों के साथ एक परियोजना में डाल नहीं pom का एक पैकेजिंग, यह समझ में नहीं आता है (कारण आपने स्वयं को दिया है)। असल में, मुझे समझ में नहीं आता कि आप क्या हासिल करने की कोशिश कर रहे हैं (क्योंकि आप जानते हैं कि यह काम नहीं करता है)।

+0

अरे आपकी पास्कल के लिए धन्यवाद। असल में मुझे मल्टी-मॉड्यूल प्रोजेक्ट का उपयोग करने की ज़रूरत है, इसलिए मैं पोम पैकेजिंग प्रकार का उपयोग कर रहा हूं। फ़िल्टर करने के लिए फ़ाइल भी src/main/संसाधन फ़ोल्डर में मौजूद नहीं है, यह मूल फ़ोल्डर की जड़ में है। मैं फ़ाइलों के पदानुक्रम को बदल नहीं सकता हूं इसलिए मैं इन सभी समस्याओं से गुजर रहा हूं। – Harmit

+0

@ हैमिट आपके मल्टी-मॉड्यूल सेटअप के मॉड्यूल को एकत्रित करने के लिए पोम पैकेजिंग ठीक है (और वास्तव में आवश्यक है) लेकिन मुझे डर है कि आप ऐसे मॉड्यूल में संसाधनों को फ़िल्टर करने में सक्षम नहीं होंगे। मुझे जो नहीं मिलता है वह यह है कि इन "फ़िल्टर किए गए" संसाधनों का उपयोग कैसे किया जाना चाहिए। आप उनके साथ क्या करने जा रहे हैं क्योंकि वे प्रकार के पोम के मॉड्यूल में हैं? –

+0

ये संसाधन वास्तव में संपत्ति फाइलें हैं। इन फ़ाइलों (फ़ाइल 1 और फ़ाइल 2) को फ़िल्टरिंग और संकलन के बाद उत्पन्न अन्य फ़ाइलों के साथ दूरस्थ स्थान पर कॉपी किया जाएगा। इन कॉन्फ़िगरेशन फ़ाइलों का भी उप-मॉड्यूल द्वारा उपयोग किया जाता है। मुझे इन फ़ाइलों में मैन्युअल रूप से मान सेट करने की आवश्यकता है, इसलिए मैं फ़िल्टरिंग का उपयोग करने की सोच रहा था। लेकिन मुझे डर है कि ऐसा करने का कोई तरीका है। – Harmit

4

आप maven-assembly-plugin का उपयोग कर सकते हैं - 'डीआईआर' प्रारूप के साथ (हालांकि यदि एक से अधिक फाइलें हैं, तो यह किसी प्रकार का संग्रह बनाने के लिए समझ में आ सकती है)। descriptor format आपको फ़िल्टर करने की अनुमति देता है। यह ऊपर वर्णित पोम और फ़ाइल पदानुक्रम के साथ काम करना चाहिए।

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

+0

हाय जैक, उत्तर के लिए धन्यवाद। वास्तव में मैंने पहले ही दूसरा विकल्प चुना है। हालांकि जब भी कुछ समय मिलता है तो मैं आपका पहला विकल्प आजमाने की कोशिश करता हूं। – Harmit

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