6.1 प्लगइन्स का परिचय

मावेन प्लगइन्स का उपयोग करके कार्यक्षमता के साथ मानक जीवनचक्र को बढ़ाया जा सकता है। प्लगइन्स आपको मानक चक्र में नए चरणों को सम्मिलित करने की अनुमति देते हैं (उदाहरण के लिए, एप्लिकेशन सर्वर पर वितरण) या मौजूदा चरणों का विस्तार करें।

मेवेन में प्लगइन्स कुछ असाधारण नहीं हैं, इसके विपरीत, वे सबसे आम और अक्सर सामना की जाने वाली चीज़ हैं। आखिरकार, यदि आप अपनी परियोजना के निर्माण की कुछ बारीकियों को निर्धारित करना चाहते हैं, तो आपको pom.xml में आवश्यक जानकारी निर्दिष्ट करनी होगी। और ऐसा करने का एकमात्र तरीका "प्लगइन" लिखना है।

चूंकि प्लगइन्स निर्भरता के रूप में बहुत अधिक कलाकृतियां हैं, इसलिए उन्हें उसी तरह वर्णित किया गया है। निर्भरता अनुभाग के बजाय - प्लगइन्स, निर्भरता के बजाय - प्लगइन, रिपॉजिटरी के बजाय - प्लगइनरिपॉजिटरी, रिपॉजिटरी - प्लगइनरिपॉजिटरी।

उदाहरण:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.6</version>
    </plugin>
</plugins>

Pom.xml में एक प्लगइन घोषित करने से आप प्लगइन संस्करण को ठीक कर सकते हैं, साथ ही इसके लिए आवश्यक पैरामीटर सेट कर सकते हैं, विभिन्न कॉन्फ़िगरेशन पैरामीटर परिभाषित कर सकते हैं और चरणों से जुड़ सकते हैं।

दूसरे शब्दों में, मावेन कुछ प्लगइन्स चलाता है जो सभी काम करते हैं। यही है, अगर हम मावेन को परियोजना के विशेष निर्माण के बारे में सिखाना चाहते हैं, तो हमें आवश्यक चरण में और आवश्यक मापदंडों के साथ वांछित प्लगइन लॉन्च करने के लिए pom.xml में एक संकेत जोड़ना होगा

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

6.2 जीवन चक्र और प्लगइन्स

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

उदाहरण:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.2.1</version>
  <executions>
    <execution>
      <goals>
        <goal>java</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <mainClass>com.example.Main</mainClass>
    <arguments>
      <argument>first-argument</argument>
      <argument>second-argument</argument>
    </arguments>
  </configuration>
</plugin>

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

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

या, उदाहरण के लिए, जब कमांड "एमवीएन टेस्ट" निष्पादित किया जाता है, तो परियोजना के जीवन चक्र में चरणों का एक पूरा सेट शुरू किया जाता है: "प्रक्रिया-संसाधन", "संकलन", "प्रक्रिया-वर्ग", "प्रक्रिया-परीक्षण" -संसाधन", "परीक्षण-संकलन", परीक्षण। आप मावेन द्वारा प्रदर्शित संदेशों में इन चरणों का उल्लेख देख सकते हैं:

[INFO] Scanning for projects...
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources)     @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile)      @ codegym
[INFO] --- maven-resources-plugin:2.6:testResources         (default-testResources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile)          @ codegym ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test)         @ codegym ---
[INFO] Surefire report directory:           t:\ projects\codegym\target\surefire-reports

मावेन में 6.3 लक्ष्य - लक्ष्य

मावेन में लक्ष्य (लक्ष्य) जैसी कोई चीज भी होती है। लक्ष्य मेवेन स्टार्टअप लक्ष्य की तरह है। मुख्य लक्ष्य मुख्य चरणों के साथ मेल खाते हैं:

  • मान्य;
  • संकलन;
  • परीक्षा;
  • पैकेट;
  • सत्यापित करना;
  • स्थापित करना;
  • तैनात करना।

परियोजना जीवन चक्र के प्रत्येक चरण में, एक विशिष्ट प्लगइन (जार-लाइब्रेरी) कहा जाता है, जिसमें कई लक्ष्य (लक्ष्य) शामिल होते हैं।

उदाहरण के लिए, "मावेन-कंपाइलर-प्लगइन" प्लगइन में दो लक्ष्य होते हैं: कंपाइलर: प्रोजेक्ट के मुख्य स्रोत कोड को संकलित करने के लिए संकलित करें, और कंपाइलर: टेस्टकंपाइल परीक्षणों को संकलित करने के लिए। औपचारिक रूप से, चरणों की सूची को बदला जा सकता है, हालांकि यह शायद ही आवश्यक है।

यदि आपको एक निश्चित चरण में कुछ गैर-मानक क्रियाएं करने की आवश्यकता है, तो आपको केवल pom.xml में उपयुक्त प्लगइन जोड़ने की आवश्यकता है

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>Name-plugin</artifactId>
  <executions>
    <execution>
      <id>customTask</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>pluginGoal</goal>
      </goals>
    </execution>
  </executions>
</plugin>

इस मामले में सबसे महत्वपूर्ण बात प्लगइन के लिए "निष्पादन / चरण" चरण के नाम को परिभाषित करना है, जिसमें आपको कॉल को "लक्ष्य" प्लगइन के लक्ष्य में एम्बेड करने की आवश्यकता है। उदाहरण के लिए, आपको xml के आधार पर जावा कोड जनरेट करने की आवश्यकता है। फिर आपको "उत्पन्न-स्रोत" चरण की आवश्यकता है, जिसे संकलन चरण में कॉल करने से पहले रखा गया है और परियोजना के स्रोतों का हिस्सा बनाने के लिए आदर्श है।