सही Maven वातावरण चर नाम क्या है: MAVEN_HOME
, MVN_HOME
या M2_HOME
?
मुझे यहाँMAVEN_HOME
और इसके बारे में कुछ विवरण मिले M2_HOME
हैं । लेकिन मैंने MVN_HOME
आसपास भी देखा है।
जवाबों:
मैंने व्यक्तिगत रूप से इसे सेट करने के लिए उपयोगी नहीं पाया है M2_HOME
।
क्या मायने रखता है आपके $ PATH वातावरण। Danix से जवाब का हिस्सा अपहरण, आप सभी की जरूरत है:
export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH
mvn
स्क्रिप्ट की गणना करता है M2_HOME
क्या यह की कीमत के लिए वैसे भी आप के लिए।
M2_HOME
(और इस तरह) का उपयोग मावेन 3.5.0 के रूप में नहीं किया जाना है। देखें MNG-5607 और रिलीज नोट्स जानकारी के लिए।
यहाँ मेरा 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
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
मैं चॉकलेट सेट के रूप में इस पर ठोकर खाई 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
$M2_HOME
कभी-कभी, उदाहरण के लिए, स्थापित करने के लिए उपयोग किया जाता है Takari Extensions for Apache Maven
$M2_HOME
मूल्य खोजने का एक तरीका यह है mvn
:
sudo find / -name "mvn" 2>/dev/null
और, शायद यह होगा: /opt/maven/
M2_HOME
ताकरी में कुछ पढ़े जाने वाले सुझाव से जुड़े पेज पर कुछ भी दिखाई नहीं दे रहा है । यह केवल शेल कमांड के उदाहरणों में एक प्लेसहोल्डर चर का उपयोग कर रहा है जिसे आप चला सकते हैं।
मैंने निम्नलिखित के साथ एक ही समस्या हल की है:
export M2_HOME=/usr/share/maven
हमारे पास M2_HOME, MAVEN_HOME, M3_HOME हैं जो सभी बाजार में उपलब्ध हैं।
पहले केवल M2_HOME ही एक ऐसा वातावरण चर था जो सभी मानक के रूप में उपयोग करते थे।
लेकिन, नवीनतम रिलीज के कारण MAVEN_Home मानक के रूप में आया, लेकिन कुछ पुराने टूल अभी भी केवल M2_HOME खोजने की कोशिश कर रहे हैं,
इसलिए हमारे पास पुराने और नए टूल के साथ बनाए रखने के लिए M2_HOME, MAVEN_HOME दोनों होने चाहिए।
M2_HOME का उपयोग दोनों के लिए भी किया जा सकता है
M2_HOME
अतीत में सेटिंग हमेशा अजीब त्रुटियों काNoClassDefFoundError
कारण बनती है, ज्यादातर इसलिए क्योंकिmvn
कमांड को PATH में मिलेगा, लेकिन एक और मावेन संस्करण के माध्यम से मिलाM2_HOME
। जब से मैंने उस env var को सेट करना बंद कर दिया है, तब से ही मेरा जीवन बेहतर हो गया है और केवल Maven ऑटोडेटेक्ट चीजों.../bin/mvn
को निर्देशिका में जोड़ने पर निर्भर हैPATH
।