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>

सहसा प्लगइन अतिशय लवचिकपणे कॉन्फिगर केले जाऊ शकतात. मावेन विकसकांकडील सर्व अधिकृत प्लगइन अधिकृत मावेन वेबसाइटवर खूप चांगले दस्तऐवजीकरण केलेले आहेत. उदाहरणार्थ, Apache Maven Project पृष्ठावरील maven-compiler-plugin साठी, तुम्ही प्लगइन नियंत्रित करणाऱ्या सर्व व्हेरिएबल्सची सूची पाहू शकता. प्लगइनची माहिती लिंकवर उपलब्ध आहे

अधिक महत्वाची माहिती. वेगवेगळ्या प्लगइन्सना मावेन त्यांच्या जीवनचक्राच्या वेगवेगळ्या टप्प्यांवर कॉल करतात. उदाहरणार्थ, स्विंग Java डेस्कटॉप ऍप्लिकेशनचे वर्णन करणार्‍या प्रोजेक्टमध्ये वेब ऍप्लिकेशनच्या (युद्ध) विकासासाठी वैशिष्ट्यपूर्ण जीवनचक्र टप्पे आहेत.

किंवा, उदाहरणार्थ, जेव्हा “mvn चाचणी” ही आज्ञा कार्यान्वित केली जाते, तेव्हा प्रकल्पाच्या जीवन चक्रातील चरणांचा संपूर्ण संच सुरू केला जातो: “प्रक्रिया-संसाधने”, “कंपाइल”, “प्रक्रिया-वर्ग”, “प्रक्रिया-चाचणी” - संसाधने", "चाचणी-संकलन", चाचणी. मावेनने प्रदर्शित केलेल्या संदेशांमध्ये तुम्ही या टप्प्यांचा उल्लेख पाहू शकता:

[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 Maven मध्ये गोल - गोल

मावेनमध्ये, ध्येय (ध्येय) अशी देखील एक गोष्ट आहे. ध्येय हे मॅवेन स्टार्टअप लक्ष्यासारखे आहे. मुख्य उद्दिष्टे मुख्य टप्प्यांशी जुळतात:

  • प्रमाणित करणे;
  • संकलित;
  • चाचणी
  • पॅकेज;
  • सत्यापित करणे;
  • स्थापित करणे;
  • तैनात करणे.

प्रोजेक्ट लाइफ सायकलच्या प्रत्येक टप्प्यात, एक विशिष्ट प्लगइन (जार-लायब्ररी) कॉल केला जातो, ज्यामध्ये अनेक उद्दिष्टे (ध्येय) समाविष्ट असतात.

उदाहरणार्थ, "maven-compiler-plugin" प्लगइनमध्ये दोन लक्ष्य आहेत: प्रकल्पाचा मुख्य स्त्रोत कोड संकलित करण्यासाठी compiler:compile आणि चाचण्या संकलित करण्यासाठी compiler:testCompile. औपचारिकपणे, टप्प्यांची यादी बदलली जाऊ शकते, जरी हे क्वचितच आवश्यक आहे.

तुम्हाला ठराविक टप्प्यात काही मानक नसलेल्या क्रिया करायच्या असल्यास, तुम्हाला फक्त 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 वर आधारित Java कोड व्युत्पन्न करणे आवश्यक आहे. मग तुम्हाला "जनरेट-स्रोत" फेजची आवश्यकता आहे, जो कंपाइल फेजला कॉल करण्यापूर्वी ठेवला जातो आणि प्रकल्पाच्या स्त्रोतांचा भाग तयार करण्यासाठी आदर्श आहे.