जब मैंने एक स्प्रिंग बूट एप्लिकेशन बनाया, तो मैं प्रोजेक्ट की जड़ में देख सकता था mvnwऔर mvnw.cmdफाइल कर सकता था । इन दो फाइलों का उद्देश्य क्या है?
जब मैंने एक स्प्रिंग बूट एप्लिकेशन बनाया, तो मैं प्रोजेक्ट की जड़ में देख सकता था mvnwऔर mvnw.cmdफाइल कर सकता था । इन दो फाइलों का उद्देश्य क्या है?
जवाबों:
ये फाइलें मावेन रैपर की हैं । यह ग्रैडल रैपर के समान ही काम करता है ।
यह आपको मावेन परियोजना को चलाने की अनुमति देता है, बिना मावेन के पथ पर स्थापित और प्रस्तुत किए बिना। यह सही मावेन संस्करण को डाउनलोड करता है यदि यह नहीं मिला है (जहां तक मैं आपके उपयोगकर्ता होम निर्देशिका में डिफ़ॉल्ट रूप से जानता हूं)।
mvnwफ़ाइल लिनक्स (बैश) के लिए है और mvnw.cmdWindows वातावरण के लिए है।
सभी आवश्यक Maven Wrapper फाइलें बनाने या अपडेट करने के लिए निम्नलिखित कमांड को निष्पादित करें:
mvn -N io.takari:maven:wrapper
मावेन के एक भिन्न संस्करण का उपयोग करने के लिए आप संस्करण को इस प्रकार निर्दिष्ट कर सकते हैं:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
दोनों आदेशों पर maven की आवश्यकता होती है PATH(maven के लिए पथ को जोड़ने binके लिए Pathहै, तो आप पहले से ही mvnw अपनी परियोजना में है आप उपयोग कर सकते हैं प्रणाली वैरिएबल पर) ./mvnwके बजाय mvnआदेशों में।
कमांड mvnwमैवेन का उपयोग करता है जो कि ~/.m2/wrapperपहले उपयोग पर डिफ़ॉल्ट रूप से डाउनलोड होता है ।
मावेन के साथ URL प्रत्येक परियोजना में निर्दिष्ट किया गया है .mvn/wrapper/maven-wrapper.properties:
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
मावेन संस्करण को अपडेट करने या बदलने के लिए निम्न को लागू करें ( --non-recursiveमल्टी-मॉड्यूल प्रोजेक्ट्स के बारे में याद रखें ):
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
या बस .mvn/wrapper/maven-wrapper.propertiesमैन्युअल रूप से संशोधित करें ।
मावेन का उपयोग करके खरोंच से आवरण उत्पन्न करने के लिए (आपको इसे पहले से ही PATHचलाने की आवश्यकता है:
mvn io.takari:maven:wrapper -Dmaven=3.3.9
Maven आवरण परियोजनाओं Maven के (या उन है कि सभी पर Maven स्थापित करने के लिए नहीं करना चाहते हैं के लिए) एक विशिष्ट संस्करण की आवश्यकता है कि के लिए एक शानदार विकल्प है। ऑपरेटिंग सिस्टम में इसके कई संस्करण स्थापित करने के बजाय, हम केवल प्रोजेक्ट-विशिष्ट आवरण स्क्रिप्ट का उपयोग कर सकते हैं।
mvnw: यह एक निष्पादन योग्य यूनिक्स शैल स्क्रिप्ट है जिसका उपयोग पूरी तरह से स्थापित मावेन के स्थान पर किया जाता है
mvnw.cmd : यह विंडोज़ वातावरण के लिए है
बक्सों का इस्तेमाल करें
रैपर को विभिन्न ऑपरेटिंग सिस्टम जैसे:
उसके बाद, हम यूनिक्स प्रणाली के लिए इस तरह से अपने लक्ष्य चला सकते हैं:
./mvnw clean install
और बैच के लिए निम्न आदेश:
./mvnw.cmd clean install
यदि हमारे पास रैपर गुणों में निर्दिष्ट मावेन नहीं है, तो इसे $USER_HOME/.m2/wrapper/distsसिस्टम के फ़ोल्डर में डाउनलोड और इंस्टॉल किया जाएगा ।
मावेन रैपर प्लगइन
एक साधारण स्प्रिंग बूट परियोजना में ऑटो इंस्टॉलेशन बनाने के लिए मावेन रैपर प्लगइन ।
सबसे पहले, हमें प्रोजेक्ट के मुख्य फ़ोल्डर में जाने और इस कमांड को चलाने की आवश्यकता है:
mvn -N io.takari:maven:wrapper
हम मावेन के संस्करण को भी निर्दिष्ट कर सकते हैं:
mvn -N io.takari:maven:wrapper -Dmaven=3.5.2
विकल्प -N का अर्थ है-गन-पुनरावर्ती ताकि आवरण केवल वर्तमान निर्देशिका की मुख्य परियोजना पर लागू हो, किसी भी सबमॉड्यूल में नहीं।
अब तक सबसे अच्छा विकल्प एक बिल्डर उपकरण के रूप में मावेन कंटेनर का उपयोग करना होगा। mvn.shइस तरह से एक स्क्रिप्ट पर्याप्त होगी:
#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"
mvnमावेन ऑपरेशन के लिए कमांड का उपयोग कर रहा था, हालांकि मैं./mvnwउसी उद्देश्य के लिए उपयोग कर सकता था ।