MAVEN_HOME, MVN_HOME या M2_HOME


84

सही Maven वातावरण चर नाम क्या है: MAVEN_HOME, MVN_HOMEया M2_HOME?

मुझे यहाँMAVEN_HOME और इसके बारे में कुछ विवरण मिले M2_HOME हैं । लेकिन मैंने MVN_HOMEआसपास भी देखा है।

जवाबों:


62

मैंने व्यक्तिगत रूप से इसे सेट करने के लिए उपयोगी नहीं पाया है M2_HOME

क्या मायने रखता है आपके $ PATH वातावरण। Danix से जवाब का हिस्सा अपहरण, आप सभी की जरूरत है:

export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH

mvnस्क्रिप्ट की गणना करता है M2_HOMEक्या यह की कीमत के लिए वैसे भी आप के लिए।


3
+1। मैं यह भी कहूंगा कि M2_HOMEअतीत में सेटिंग हमेशा अजीब त्रुटियों का NoClassDefFoundErrorकारण बनती है, ज्यादातर इसलिए क्योंकि mvnकमांड को PATH में मिलेगा, लेकिन एक और मावेन संस्करण के माध्यम से मिला M2_HOME। जब से मैंने उस env var को सेट करना बंद कर दिया है, तब से ही मेरा जीवन बेहतर हो गया है और केवल Maven ऑटोडेटेक्ट चीजों .../bin/mvnको निर्देशिका में जोड़ने पर निर्भर है PATH
बैपटिस्ट माथस

6
"मैंने व्यक्तिगत रूप से इसे M2_HOME सेट करने के लिए उपयोगी नहीं पाया है।" और आप सही थे। यह पदावनत किया जाता है: stackoverflow.com/a/47712646/270371
davidxxx


22

यहाँ मेरा Maven सेटअप है। आप इसे एक उदाहरण के रूप में उपयोग कर सकते हैं। मावेन का उपयोग करने के लिए आपको किसी और चीज की आवश्यकता नहीं है।

M2_HOME का उपयोग Maven 2 और 3 दोनों के लिए किया जाता है

export M2_HOME=/Users/xxx/sdk/apache-maven-3.0.5
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xmx1048m -Xms256m -XX:MaxPermSize=312M"
export PATH=$M2:$PATH

8

MAVEN_HOME का उपयोग maven 1 के लिए किया जाता है और M2_HOME का उपयोग maven 2 का पता लगाने के लिए किया जाता है । दो अलग-अलग _HOME चर होने का मतलब है कि दोनों को एक ही मशीन पर चलाना संभव है। और अगर आप पुरानी mvn.cmd स्क्रिप्ट की जांच करते हैं, तो उनके पास कुछ ऐसा है,

@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM     e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------

देखना है कि @REM M2_HOME - location of maven2's installed home dir

वैसे भी इस पैटर्न का उपयोग अब प्रलेखन के अनुसार मावेन 3.5 के साथ किया गया है

M2_HOME का उपयोग करने में स्थापित विभिन्न Maven संस्करणों से संबंधित समस्याओं के आधार पर और चीजों को सरल बनाने के लिए, M2_HOME के ​​उपयोग को हटा दिया गया है और किसी भी अधिक MNG-5823 , MNG-5836 , MNG-5607 का समर्थन नहीं किया गया है

तो अब mvn.cmd जैसा दिखता है,

@REM -----------------------------------------------------------------------------
@REM Apache Maven Startup Script
@REM
@REM Environment Variable Prerequisites
@REM
@REM   JAVA_HOME          Must point at your Java Development Kit installation.
@REM   MAVEN_BATCH_ECHO  (Optional) Set to 'on' to enable the echoing of the batch commands.
@REM   MAVEN_BATCH_PAUSE (Optional) set to 'on' to wait for a key stroke before ending.
@REM   MAVEN_OPTS        (Optional) Java runtime options used when Maven is executed.
@REM   MAVEN_SKIP_RC     (Optional) Flag to disable loading of mavenrc files.
@REM -----------------------------------------------------------------------------

तो क्या आप की जरूरत है JAVA_HOME सही ढंग से सेट किया जाना है। के अनुसार (2017/12/29) के रूप में नया अधिष्ठापन गाइड , बस पथ चर करने के लिए maven बिन निर्देशिका पथ जोड़ें। यह चाल करना चाहिए।

पूर्व: export PATH=/opt/apache-maven-3.5.2/bin:$PATH


1

मैं चॉकलेट सेट के रूप में इस पर ठोकर खाई M2_HOME। मैं पता लगाना चाहता था settings.xml

जाने के लिए वर्तमान तरीका settings.xmlहै %USERPROFILE%। वहां, एक निर्देशिका .m2निहित होती है, जहां कोई पाता है settings.xml

कभी उपयोग न करें M2_HOME। यह अपाचे मावेन 3.5.0 के बाद से असमर्थित है।

विवरण:

M2_HOMEस्थापित किए गए विभिन्न मावेन संस्करणों से संबंधित चीजों का उपयोग करने और चीजों को सरल बनाने में समस्याओं के आधार पर , उपयोग M2_HOMEको हटा दिया गया है और किसी भी अधिक MNG-5823 , MNG-5836 , MNG-5607 का समर्थन नहीं किया गया है ।

विंडोज़ उपयोगकर्ताओं के लिए महत्वपूर्ण परिवर्तन: इसके उपयोग को MNG-6001%HOME% से बदल दिया गया है%USERPROFILE%

स्रोत: https://maven.apache.org/docs/3.5.0/release-notes.html#overview-about-the-changes


-1

$M2_HOMEकभी-कभी, उदाहरण के लिए, स्थापित करने के लिए उपयोग किया जाता है Takari Extensions for Apache Maven

$M2_HOMEमूल्य खोजने का एक तरीका यह है mvn:

sudo find / -name "mvn" 2>/dev/null

और, शायद यह होगा: /opt/maven/


मुझे M2_HOMEताकरी में कुछ पढ़े जाने वाले सुझाव से जुड़े पेज पर कुछ भी दिखाई नहीं दे रहा है । यह केवल शेल कमांड के उदाहरणों में एक प्लेसहोल्डर चर का उपयोग कर रहा है जिसे आप चला सकते हैं।
जेसी ग्लेक

-2

मैंने निम्नलिखित के साथ एक ही समस्या हल की है:

export M2_HOME=/usr/share/maven

2
हालांकि यह कोड प्रश्न को हल कर सकता है, जिसमें यह भी बताया गया है कि यह समस्या कैसे और क्यों हल करती है, इससे वास्तव में आपके पोस्ट की गुणवत्ता को बेहतर बनाने में मदद मिलेगी, और शायद अधिक वोट भी मिलेंगे। याद रखें कि आप भविष्य में पाठकों के लिए सवाल का जवाब दे रहे हैं, न कि केवल उस व्यक्ति से जो अब पूछ रहा है। कृपया स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें और संकेत दें कि क्या सीमाएँ और मान्यताएँ लागू होती हैं।
डबल-बीप

-7

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.