2010-01-12 5 views
78

मैं मैवेन रिएक्टर के बारे में पढ़ रहा हूं और इसके शब्दावली उपयोग से उलझन में हूं। मैंने एक बहु-मॉड्यूल पढ़ा है एक रिएक्टर है, कि आप मेवेन रिएक्टर में हेरफेर कर सकते हैं और रिएक्टर एक प्लगइन है। रिएक्टर वास्तव में क्या है?मेवेन में "रिएक्टर" क्या है?

उत्तर

136

रिएक्टर मेवेन का हिस्सा है जो इसे मॉड्यूल के सेट पर एक लक्ष्य निष्पादित करने की अनुमति देता है। के रूप में Maven 1.x documentation on multi-modules builds में उल्लेख किया है (रिएक्टर अवधारणा पहले से ही वहाँ Maven 1.x में था) है, जबकि मॉड्यूल काम के असतत इकाई कर रहे हैं, वे एक साथ इकट्ठा किया जा सकता रिएक्टर का उपयोग कर एक साथ उन्हें निर्माण करने के लिए और:

रिएक्टर प्रत्येक परियोजना द्वारा उनके संबंधित परियोजना वर्णनकर्ताओं में बताई गई निर्भरताओं से सही निर्माण आदेश निर्धारित करता है, और फिर लक्ष्यों के एक निर्धारित सेट को निष्पादित करेगा। इसका उपयोग दोनों बिल्डिंग परियोजनाओं और साइट लक्ष्यों जैसे अन्य लक्ष्यों के लिए किया जा सकता है।

के रूप में बताया गया है, रिएक्टर क्या बहु मॉड्यूल संभव बनाता है बनाता है: यह मॉड्यूल के बीच निर्भरता का निर्देश दिया ग्राफ गणना करता है, इस ग्राफ से निर्माण आदेश (यही कारण है कि चक्रीय निर्भरता अस्वीकृत कर दी जाती है, जो वैसे भी अच्छी बात है निकला है) और फिर मॉड्यूल पर लक्ष्यों को निष्पादित करता है। दूसरे शब्दों में, एक "बहु मॉड्यूल निर्माण" एक "रिएक्टर का निर्माण" है और "रिएक्टर का निर्माण" एक "बहु मॉड्यूल निर्माण" है।

मेवेन 2.x में, बहु-मॉड्यूल बिल्डों का समर्थन बहुत सुधार हुआ है और रिएक्टर मेवेन उपयोगकर्ताओं के लिए पारदर्शी बन गया है। लेकिन यह अभी भी वहां है और हुड के नीचे प्रयोग किया जाता है।

सितंबर 2008 में (यानी मैवेन 2 के रोलआउट के बाद लंबे समय तक), reactor plugin को मेवेन रिएक्टर के साथ अधिक बारीकी से बातचीत करने के लिए बनाया गया है। ब्रेट पोर्टर ने Reactor: My New Favourite Maven Plugin में इसके बारे में ब्लॉग किया।

अधिकांश रिएक्टर प्लगइन सुविधाएं अब मूल रूप से समर्थित हैं (मेवेन 2.1.0 के बाद से)। Maven Tips and Tricks: Advanced Reactor Options देखें।

+9

Maven साइट क्यों कहता है कि इस प्लगइन "सेवानिवृत" है? –

+2

क्योंकि रिएक्टर प्लगइन एक प्लगइन है जो (केवल) वास्तविक रिएक्टर को "वार्ता" करता है। तो रिएक्टर स्वयं सेवानिवृत्त नहीं है बल्कि इससे संबंधित एक प्लगइन है। – Lonzak

2

रिएक्टर का उपयोग तब होता है जब किसी प्रोजेक्ट में बहु-मॉड्यूल होता है।

रिएक्टर के द्वारा किया काम करता हैं:

  • निर्भरता के आधार पर एकत्रित मॉड्यूल विवरण
  • आदेश छंटाई
  • आदेश

में परियोजनाओं बनाता Maven 2.1 रिलीज के साथ शुरू , नए मेवेन कमांड लाइन विकल्प हैं जो आपको इस तरीके से छेड़छाड़ करने की अनुमति देते हैं कि मैवेन मल्टीमुड्यूल प्रोजेक्ट्स का निर्माण करेगा। इन नए विकल्प हैं:

-rf, --resume-from 
    Resume reactor from specified project 
-pl, --projects 
    Build specified reactor projects instead of all projects 
-am, --also-make 
    If project list is specified, also build projects required by the list 
-amd, --also-make-dependents 
    If project list is specified, also build projects that depend on projects on the list 

source