मावेन: जीवनचक्र बनाम चरण बनाम प्लगइन बनाम लक्ष्य [बंद]


106

यहां अपेक्षाकृत नए डेवलपर, भले ही मैं इसे थोड़ी देर के लिए उपयोग कर रहा हूं, मैं अपने मावेन बुनियादी बातों को मजबूत करने की उम्मीद कर रहा हूं। मेरी समस्या का एक हिस्सा यह है कि मुझे चींटी के साथ कोई अनुभव नहीं है, जो ऐसा लगता है जहां से कई स्पष्टीकरण मिलते हैं। मैं ट्यूटोरियल पढ़ रहा हूं और देख रहा हूं, और मैं एक ही शब्द सुन रहा हूं:

  • जीवन चक्र
  • चरण
  • लगाना
  • लक्ष्य

मैंने जो कुछ सीखा है, उससे लगता है कि जीवनचक्र गुच्छा का सबसे चौड़ा है, और चरणों, प्लगइन्स, और / या लक्ष्यों से बना (या पूरा) है।

प्रश्न : क्या आप इस बारे में कोई जानकारी प्रदान कर सकते हैं कि ये शब्द कैसे संबंधित हैं और सबसे आम उदाहरण हैं?

और अधिक स्पष्ट और बुनियादी, बेहतर!



धन्यवाद @Drejc - विश्वास नहीं कर सकता कि मुझे यह मेरी खोज में नहीं मिला। मैं अब इसके माध्यम से पढ़ूंगा।
जेफ लेविन

2
तो, स्पष्ट करने के लिए, जीवन चक्र = जीवनचक्र का निर्माण करें , जिसके तीन प्रकार हैं: डिफ़ॉल्ट, स्वच्छ और साइट? अन्य व्याख्याओं से मुझे लगा कि बिल्ड नामक एक चौथा जीवनचक्र है ।
जेफ लेविन


3
बहुत चौड़ा? यह मावेन के मूल आधारों की चिंता करता है और इसके कुछ अच्छे और विस्तृत उत्तर हैं। एकल मावेन टैग के बिना मध्यस्थों को यह तय करने की अनुमति नहीं दी जानी चाहिए।
गेरोल्ड ब्रोसर

जवाबों:


73

एक मावेन जीवन चक्र एक (सार) अवधारणा है जो सभी चरणों को कवर करती है (या बेहतर: सभी मावेन डिजाइनरों ने समर्थन करने का फैसला किया है) जो कि परियोजना के विकास के जीवनकाल में होने की उम्मीद है। इन चरणों (या चरणों) को मावेन शब्दावली में चरण कहा जाता है

एक मावेन प्लगइन लक्ष्यों के आपूर्तिकर्ता / के लिए एक कंटेनर है लक्ष्यों में लागू कोड वास्तविक वर्कहॉर्स है। ( इसके मूल में मावेन केवल प्लगइन्स का प्रबंधन कर रहा है और लक्ष्यों को निष्पादित कर रहा है )। प्लगइन के प्रत्येक लक्ष्य को जीवनचक्र के किसी भी चरण में सौंपा / बाध्य किया जा सकता है।

जब mvn <phase> मावेन को लागू करना सभी चरणों (हर बार) से गुजरता है और सभी लक्ष्यों (प्लगिन द्वारा आपूर्ति ) को निष्पादित करता है जो दिए गए चरण से पहले और (और सहित) के किसी भी चरण के लिए बाध्य हो गए हैं। यदि कोई ऐसा चरण है जिसके साथ कोई लक्ष्य नहीं है तो कुछ भी नहीं किया जाता है। लेकिन चरण अभी तक पारित है।

यानी आप मावेन में निर्मित जीवनचक्रों में से एक में "अतिरिक्त चरण" नहीं डाल सकते हैं। वे पहले से ही वहाँ हैं, हमेशा! आप अपने स्वयं के जीवनचक्र को अपने स्वयं के चरणों के साथ विकसित कर सकते हैं लेकिन यह केवल मावेन के उपयोग से कहीं परे है।

लक्ष्य को सीधे निष्पादित भी किया जा सकता है, जो आपको mvnबिना किसी चरण या लक्ष्य के चलते हुए मिलता है [लाइन ब्रेक के साथ और यहाँ पढ़ने के लिए छोटा किया गया है]:

You must specify a valid lifecycle phase or a goal in the format

<plugin-prefix>:<goal> or

<plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>.

Available lifecycle phases are:

... see actual output or 'Maven, Introduction to the Build Lifecycle' at 'References' below ...

संदर्भ:

अगर आपने कभी सोचा है कि मावेन को कैसे पता है कि पोम में किसी भी लक्ष्य के बंधन में बंधे बिना क्या करना है तो default-bindings.xmlअंत में एक लिंक है जो अंदर स्थित है <Your Maven installation>/lib/maven-core-x.y.z.jar/META-INF/plexus/default-bindings.xml

अंतर्निहित जीवनचक्र ( स्वच्छ , डिफ़ॉल्ट , साइट ) के लिए चरण के <Your Maven installation>/lib/maven-core-x.y.z.jar/META-INF/plexus/components.xmlतहत घोषित किए गए हैं .../<component>/<role>org.apache.maven.lifecycle.Lifecycle


41

मावेन: जीवनचक्र बनाम चरण बनाम प्लगइन बनाम लक्ष्य

इस धागे में गायब एक और स्तर की ग्रेन्युलैरिटी को स्पष्ट करने के लिए बस देर से जवाब देना: निष्पादन (एक लक्ष्य), जो एक मावेन बिल्ड की सबसे छोटी इकाइयाँ हैं।

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

एक तस्वीर जिसे मैंने पूरा फिर से शुरू करने के लिए तैयार किया यहां छवि विवरण दर्ज करें

और वास्तव में यह है कि मावेन अपने निर्माण लॉग में अद्वितीय स्ट्रिंग के माध्यम से इसे (इसकी सबसे छोटी इकाई) दिखाता है:

plugin-artifactId:plugin-version:plugin-goal (goal-execution-id) @ project-name

उदाहरण के लिए, हमारे पास होगा:

[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ sample-project ---

जिसका वास्तव में मतलब है (विभिन्न स्तरों के माध्यम से)

  • compileचरण के दौरान (उल्लेख नहीं, दुर्भाग्य से)>
  • मैं मावेन कंपाइलर प्लग इन ( artifactIdऔर version)> इनवॉइस कर रहा हूं
  • मैं इसका compileलक्ष्य प्राप्त कर रहा हूं >
  • जैसा कि default-compileनिष्पादन द्वारा परिभाषित किया गया है

यह अद्वितीय है क्योंकि वास्तव में आप एक ही लक्ष्य (एक ही प्लगइन का) अलग-अलग चरणों में या एक ही चरण में हो सकते हैं, लेकिन अलग-अलग निष्पादन में (जो कि अलग-अलग कॉन्फ़िगरेशन के साथ)। maven-compiler-pluginउदाहरण के तौर पर भी के दौरान प्रयोग किया जाता है test-compileचरण संकलन परीक्षण कोड के लिए (एक अलग चरण) (इसके माध्यम से testCompileएक अलग निष्पादन में लक्ष्य) ( default-testCompile)। आप एक ही चरण के दौरान कुछ ऑटो-जनरेटेड कोड (एक ही प्लगइन और लक्ष्य का उपयोग करके) संकलित कर सकते हैं जैसा कि एक निष्पादन द्वारा परिभाषित किया गया था जिसे आपने पीओएम (और संभवतः एक अलग कॉन्फ़िगरेशन) निर्दिष्ट किया था।

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

यह भी बताता है कि यदि आप वास्तव में एक मावेन बिल्ड के डिफ़ॉल्ट व्यवहार (बाध्यकारी) को ओवरराइड करना चाहते हैं, तो आपको उसी प्लगइन के लिए अपने POM में बिल्कुल एक ही निष्पादन आईडी निर्दिष्ट करना (ओवरराइड) करना होगा। उदाहरण के लिए, आप केवल एक maven-compiler-pluginही default-compileआईडी के साथ निष्पादन को परिभाषित करने के लिए संकलन छोड़ सकते हैं, लेकिन एक गैर मौजूदा चरण (या खाली स्थान) के लिए बाध्य हो सकते हैं।

इसे छोटा करने के लिए : एक निष्पादन मावेन को बताता है कि किस चरण में किस कॉन्फ़िगरेशन को निष्पादित करना है।

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

हां, आप साइकिल (और उनके चरणों) का निर्माण कर सकते हैं और सीधे गोल (प्लगिन के) कर सकते हैं। निम्नलिखित की कल्पना करें:

mvn compiler:compile
mvn compiler:testCompile
mvn surefire:test
mvn jar:jar

(नोट: आप इनलाइन को केवल एक कॉल में भी आमंत्रित कर सकते हैं)

यहां हम ऐप कोड, टेस्ट कोड, परीक्षणों का परीक्षण और पैकेज संकलित कर रहे हैं: कल्पना करें कि यह मैनुअल, त्रुटि-प्रवण, दोहराव और समय लेने वाली कैसे होगी। कॉन्फ़िगरेशन पर कन्वेंशन हमारी मदद करता है: मावेन जीवन चक्र और चरणों का निर्माण करता है । डिफ़ॉल्ट जीवन चक्र (जिसका कोई नाम नहीं है, जो कि डिफ़ॉल्ट है), सर्वोत्तम प्रथाओं और सम्मेलनों (मावेन के मंत्र) के आधार पर चरणों की एक श्रृंखला प्रदान करता है।
यदि आप ऊपर के समान प्राप्त करना चाहते हैं, तो बस चलाएं: mvn packageऔर यह स्वचालित रूप से आपके प्रोजेक्ट को संकलित, परीक्षण और पैकेज करेगा। कैसे? प्लगइन्स का आह्वान। अर्थात्, चरण प्लगइन्स (लक्ष्यों) के सार्थक और विन्यास योग्य सेट हैं। इसे और अधिक मानक बनाने के लिए, प्रत्येक चरण के लिए मावेन सबसे पहले किसी भी पूर्ववर्ती चरण को लागू करेगा, ताकि यदि आप परीक्षण करना चाहते हैं, तो आप सुनिश्चित करेंगे कि आप पहले संकलन करेंगे।

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


18

संदीप जिंदल और प्रेमराज को श्रेय (यहाँ से मावेन के लक्ष्य और चरण क्या हैं और उनके अंतर क्या हैं? )। उनकी व्याख्या मुझे समझने में मदद करती है।

मैंने कुछ पूर्ण कोड उदाहरण और कुछ सरल व्याख्याएं यहां बनाईं https://www.surasint.com/maven-life-cycle-phase-and-goal-easy-explained/ । मुझे लगता है कि यह दूसरों को समझने में मदद कर सकता है और सीधे कुछ आज़मा सकता है।

लिंक से संक्षेप में, आपको तीनों को एक साथ समझने की कोशिश नहीं करनी चाहिए, पहले आपको इन समूहों में संबंध को समझना चाहिए:

  • जीवन चक्र बनाम चरण
  • प्लगइन बनाम लक्ष्य

1. जीवन चक्र बनाम चरण

जीवन चक्र अनुक्रम में चरण का एक संग्रह है , यहां देखें जीवन चक्र संदर्भ । जब आप किसी चरण को कहते हैं , तो यह सभी चरणों को भी इससे पहले कॉल करेगा ।

उदाहरण के लिए, स्वच्छ जीवन चक्र के 3 चरण होते हैं ( पूर्व-स्वच्छ, स्वच्छ, पश्च-स्वच्छ )।

mvn clean

इसे प्री-क्लीन और क्लीन कहा जाएगा

2. प्लगइन बनाम लक्ष्य

लक्ष्य प्लगइन में एक कार्रवाई की तरह है । इसलिए यदि प्लगइन एक वर्ग है, तो लक्ष्य एक विधि है।

आप इस तरह एक लक्ष्य को कॉल कर सकते हैं:

mvn clean:clean

इसका अर्थ है "स्वच्छ लक्ष्य को कॉल करें, स्वच्छ प्लगइन में" (कुछ भी नहीं यहां स्वच्छ चरण से संबंधित है। "स्वच्छ" शब्द को आपको भ्रमित नहीं करने दें, वे समान नहीं हैं! ऊपर दिए गए मेरे लिंक में पूर्ण विवरण देखें)

3. अब चरण और लक्ष्य के बीच का संबंध:

लक्ष्य (ओं) को चरण (पूर्व) लिंक कर सकते हैं। उदाहरण के लिए, सामान्य रूप से, स्वच्छ चरण स्वच्छ लक्ष्य से जुड़ता है। इसलिए, जब आप इस आदेश को कहते हैं:

mvn clean

यह पूर्व-स्वच्छ चरण और स्वच्छ चरण को कॉल करेगा जो स्वच्छ: स्वच्छ लक्ष्य से जोड़ता है।

यह लगभग समान है:

mvn pre-clean clean:clean

1
@ 2. & 3. IMHO, clean:cleanएक उदाहरण के लिए सबसे अच्छा विकल्प नहीं है। 4 आइटम नाम हैं clean(जीवनचक्र, चरण, प्लगइन, लक्ष्य) जो भ्रमित हो सकते हैं, विशेष रूप से शुरुआती लोगों के लिए (मुझे याद है कि यह शुरुआत में मेरे लिए था)। @ 3. क्रिया "लिंक" या तो एक अच्छा विकल्प नहीं है, IMHO। आधिकारिक मावेन शब्द " बाइंड " है।
गेरोल्ड ब्रोसर

@GeroldBroser। पूरी तरह से साफ: स्वच्छ के साथ सहमत हैं। मैंने समझाया था और चेतावनी दी थी कि लिंक में मेरी पूरी व्याख्या। मैं उस चेतावनी को यहाँ भी कॉपी करूँगा। इसका कारण यह है कि मैंने इसका इस्तेमाल किया क्योंकि लोगों को इस भ्रामक बात के बारे में बताना अच्छा है और विशेष रूप से, आधिकारिक मावेन दस्तावेज़ इसका उपयोग कर रहा है और यह स्पष्ट रूप से बताता है। और हाँ, यह मुझे भी भ्रमित कर रहा था। वैसे भी, टिप्पणियों के लिए बहुत बहुत धन्यवाद
सुरसीन तंचारोएन

टाइपो: आधिकारिक मावेन दस्तावेज़ का उपयोग कर रहा है और इसे स्पष्ट रूप से नहीं बताता है
सुरसिन तन्खारोएन

17

और कथित रूप से एक और आरेख

  • पीले आयतों के रूप में जीवनचक्र
  • चरण के साथ नीले रंग आयतों के रूप में lifecycles की "प्रतिदेय" गहरे रंग नीले रंग में चरणों (यानी hypenation साथ चरणों आमतौर पर कमांड लाइन से बुलाया नहीं कर रहे हैं के रूप में वे एक अच्छी तरह से परिभाषित राज्य में परियोजना को छोड़ने के लिए तैयार किया गया है न किया जाए)।
  • ब्लू लोज़ेंग के रूप में गोल । एसोसिएशन / बाइंडिंग "चरण -> लक्ष्य" दिखाया गया "जार" पैकेजिंग मोड में से एक है । हर चरण में इससे जुड़े लक्ष्य हो सकते हैं। यह प्रत्येक जीवन चक्र के लिए निश्चित रूप से है, हालाँकि बाइंडिंग केवल "डिफ़ॉल्ट" जीवनचक्र के लिए दिखाई जाती है।
  • प्लग के रूप में ग्रे प्रतिरूपित आयत। प्लगइन्स लक्ष्य प्रदान करते हैं जो चरणों के लिए बाध्य हो सकते हैं।

मैवेन लाइफसाइकल, चरण, लक्ष्य, प्लगइन्स


ग्राफएम फ़ाइल (मुफ्त yEd संपादक के साथ संपादित) github.com/dtonhofer/diagrams
डेविड टोनहोफर

1) "कॉलेबल" चरण "जो कि" गहरे नीले रंग में हैं " से आपका क्या तात्पर्य है ? हर मावेन चरण "कॉल करने योग्य" होता है (हालांकि मैं इसे अदृश्य रूप से कॉल करता हूं , क्योंकि कोई चरण सीधे कॉल करने से कोड नहीं होता है)। या क्या आप चरणों को "कॉल करने योग्य " कहते हैं जिनके पास एक गोल है (डिफ़ॉल्ट रूप से)? यह भी सच नहीं है, अगर तुम देखो validate, initializeऔर verify
गेरोल्ड ब्रॉसर

2) resources:[testR|r]esourcesलक्ष्य जीवनचक्र में process-sourcesया process-test-sourcesचरणों केjar लिए बाध्य नहीं है ।
गेरोल्ड ब्रॉसर

3) modello:javaके Modello प्लगइन जाहिरा तौर पर डोमेन-विशिष्ट है। किसी चरण के लिए प्लगइन का लक्ष्य बांधना किसी भी चरण के लिए होता है।
गेरोल्ड ब्रॉसर

@GeroldBroser टिप्पणियों के अनुसार निश्चित किया गया। "कॉल करने योग्य" का अर्थ है कि कोई इसे कमांड लाइन से कॉल कर सकता है और उम्मीद कर सकता है कि परियोजना वैध स्थिति में रहेगी। कॉल करने और आह्वान करने और कॉल करने के बीच कोई सार्थक अंतर नहीं है जो मावेन परिचय का उपयोग करता है।
डेविड टोनहोफर

12

स्रोत यह वास्तव में अच्छा ट्यूटोरियल है

जीवनचक्र, जीवनचक्र चरण, प्लगइन्स और प्लगिन लक्ष्य मावेन के मूल हैं।

  • मावेन कमांड मावन केवल लॉजिक साइकिल चरण या प्लगिन गोल को तर्क के रूप में स्वीकार कर सकता है।
  • मावेन तीन जीवन चक्रों के साथ आता है - डिफ़ॉल्ट, स्वच्छ और साइट।
  • प्रत्येक जीवनचक्र जीवनचक्र के चरणों से बना होता है और सभी में, 28 चरण होते हैं - डिफ़ॉल्ट 21 ( मान्य, ..., संकलन, ..., पैकेज, ..., स्थापित, तैनात ), स्वच्छ 3 ( पूर्व-स्वच्छ,) स्वच्छ, पोस्ट-क्लीन ) और साइट 4 ( पूर्व-साइट, साइट, पोस्ट-साइट, साइट-परिनियोजन )।
  • जब कोई जीवनचक्र चरण mvan कमांड का उपयोग करके लागू किया जाता है, तो सभी पूर्ववर्ती चरणों को क्रमिक रूप से एक के बाद एक निष्पादित किया जाता है।
  • जीवन चक्र अपने आप में कुछ कार्य पूरा करने के लिए कोई क्षमता नहीं है और वे कार्य को पूरा करने के लिए प्लगइन्स पर भरोसा करते हैं।
  • प्रोजेक्ट और पैकेजिंग प्रकार के आधार पर, मावेन विभिन्न प्लगइन लक्ष्यों को जीवनचक्र के चरणों में बांधता है और लक्ष्य उन्हें सौंपे गए कार्य को अंजाम देता है।

जब हम एक जावा प्रोजेक्ट में " mvan पैकेज " चलाते हैं , तो मावेन अगले गोल में दिखाए गए अनुसार जीवन चक्र के लिए प्लगइन लक्ष्यों को बांधता है।

mvn-प्लगइन्स-पैकेज-लक्ष्य


1
आपके द्वारा उल्लिखित सामग्री बहुत अच्छी है। धन्यवाद!
विलियम किनन

@ " मावेन कमांड मवन केवल लाइफसाइकल चरण या प्लगिन लक्ष्य को तर्क के रूप में स्वीकार कर सकता है। " सही नहीं है। यह विकल्पों को भी स्वीकार करता है ।
गेरोल्ड ब्रॉसर

" जब हम जावा प्रोजेक्ट में" mvan पैकेज "चलाते हैं, तो मावेन प्लगइन लक्ष्यों को जीवनचक्र के चरणों में बांधता है " यह सच नहीं है। लक्ष्य बाइंडिंग चलने से बहुत पहले होता है mvn ...: डिफ़ॉल्ट-bindings.xml या किसी POM में और यह मावेन द्वारा नहीं बल्कि एक मानव द्वारा किया जाता है।
गेरोल्ड ब्रॉसर

7

इसलिए थोड़ा और समझाने के लिए जैसा कि यहां बताया गया है

मावेन बिल्ड जीवन-चक्र में विभाजित हैं ये हैं:

  • स्वच्छ
  • निर्माण (डिफ़ॉल्ट)
  • साइट

इस चक्र में से प्रत्येक को चरणों में विभाजित किया गया है। उदाहरण के लिए बिल्ड चरणों में विभाजित है:

  • संसाधन तैयार करें
  • संकलन
  • पैकेज
  • इंस्टॉल

के चरण से पहले चलाने के लिए लक्ष्य पूर्व या बाद पोस्ट एक चरण, उदाहरण के लिए:

  • पूर्व-स्वच्छ - स्वच्छ चरण से पहले निष्पादित किया जाएगा
  • स्वच्छ के बाद - स्वच्छ चरण के बाद निष्पादित किया जाएगा

यदि आप चाहें तो आप लक्ष्यों को अतिरिक्त "सम्मिलित" चरणों के रूप में देख सकते हैं। यहाँ पढ़ें या विवरण के लिए @ गोल्ड्स उत्तर पर एक नज़र डालें ।


1
यह उत्तर अपनी संपूर्णता में सही नहीं है। मेरा जवाब देखिए ।
गेरोल्ड ब्रॉसर

हे लड़के 3 साल जब से तुमने इस सवाल का जवाब दिया है ... और अभी भी इसे जाने नहीं दे रहा है .. तुम जीत गए ... अब आगे बढ़ो।
Drejc

यह जीतने की बात नहीं है। क्या आप पुराने प्रश्नों, उत्तरों और टिप्पणियों को संशोधित नहीं करते हैं यदि आप बाद में उन पर ठोकर खाते हैं?
गेरोल्ड ब्रोसर

3

जीवनचक्र बनाम चरण: Life Cycle का एक संग्रह है phases। जब आप एक चरण कहते हैं, तो यह सभी चरणों को भी बुलाएगा जो इसके पहले आते हैं। Maven 3 बिल्ट-इन बिल्ड लाइफ साइकल के साथ आता है:

  1. स्वच्छ जीवनचक्र- इसमें परियोजना की सफाई (एक ताजा निर्माण और तैनाती के लिए) शामिल है
  2. डिफ़ॉल्ट / बिल्ड जीवनचक्र- यह परियोजना की पूर्ण तैनाती को संभालता है
  3. साइट जीवनचक्र- यह परियोजना के जावा प्रलेखन का निर्माण करता है। यहां छवि विवरण दर्ज करें

स्वच्छ जीवनचक्र के 3 चरण होते हैं: पूर्व-स्वच्छ, स्वच्छ और पश्च-स्वच्छ। डिफ़ॉल्ट और साइट जीवनचक्र के चरण चित्र में दिखाए गए अनुसार ही हैं।


आपका अंतिम पैराग्राफ भ्रामक है। खासकर पहला और आखिरी वाक्य। लक्ष्य और चरण पूरी तरह से अलग चीजें हैं। आपको उन्हें भ्रमित नहीं करना चाहिए क्योंकि उनमें से कुछ के नाम समान हैं। " गोल आप ऊपर चित्र में दिख रहे चरण हैं। ": चित्र में उल्लिखित एक भी लक्ष्य नहीं है। ये सभी चरण हैं । रे " आप 'लक्ष्य' आप कुछ लक्ष्य प्रदर्शन करने के लिए है जब के रूप में चरण नाम लिखें। ": यद्यपि यह संभव है एक प्लगइन के लक्ष्य पर स्पष्ट रूप हमेशा की तरह एक निश्चित करने के लिए एक निर्माण प्रदर्शन करना है चलाने के लिए चरण के साथ mvn <phase>। यहाँ मेरा जवाब देखें।
जेरोल्ड ब्रॉसर

धन्यवाद, मैंने "प्लगइन बनाम लक्ष्य" भाग को हटा दिया है। मैं इसे जल्द ही अपडेट करूंगा।
अरुण राज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.