मावेन स्थानीय रेपो स्थान कैसे प्राप्त करें?


84

क्या मावेन स्थानीय रेपो स्थान प्राप्त करने का कोई तरीका है?

निम्नलिखित कमांड का उपयोग करके आप मावेन को एक विशिष्ट सेटिंग फ़ाइल का उपयोग करने के लिए मजबूर कर सकते हैं:

 mvn -s < path to settings file >

मुझे पता है कि आप settings.xmlरिपॉजिटरी लोकेशन सेट करने के लिए फाइल एडिट कर सकते हैं , लेकिन क्या मैं कुछ मेवेन कमांड के साथ करंट डिफॉल्ट वैल्यू पा सकता हूं?

जवाबों:


126

यदि आप सिर्फ स्थानीय रेपो चाहते हैं, तो यह प्रयास करें:

mvn help:evaluate -Dexpression=settings.localRepository | grep -v '\[INFO\]'

संपादित करें

मैं इसे सालों बाद फिर से बता रहा हूं क्योंकि मावेन हेल्प प्लगइन के हालिया संस्करणों ने evaluateलक्ष्य के लिए एक उपयोगी पैरामीटर पेश किया है, forceStdoutजो हमें आउटपुट को बढ़ाने की आवश्यकता को दूर करने की अनुमति देता है:

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout

2
मुझे लगता है कि आप | grep -v '\[INFO\]' अपने regex के लिए इरादा बुरा साइड इफेक्ट है।
kubanczyk

दोनों संस्करण मेरे लिए काम करते हैं, "बुरा दुष्प्रभाव" से आपका क्या मतलब है?
अदुतरा २४'१६ को १ .:

3
@adutra आपका regex एक मैच समूह को निर्दिष्ट करता है जिसमें ऊपरी केस के अक्षर I, N, F और O शामिल हैं। इसलिए यह या तो उन पंक्तियों से मेल खाएगा: INFO, OFNI, I, F, N आदि। इसे आज़माएंecho -e "INFO\nOFNI\nI\nIfoobar" | grep '[INFO]'
pmrx

3
यदि आपके पास मावेन चेतावनी है या यह निर्भरता डाउनलोड करता है तो यह काम नहीं करेगा। निम्न grep, जो संपूर्ण फ़ाइल पथों की खोज करता है, को यूनिक्स और विंडो दोनों पर काम करना चाहिए:mvn help:evaluate -Dexpression=settings.localRepository | grep -E '^([a-zA-Z]:|/)'
SiXoS

@SiXoS ने भी आपके काम नहीं किया, मेरे मामले में, mvan ने चेतावनी दी जब [INFO] प्रोजेक्ट्स के लिए स्कैनिंग .... और आउटपुट के ग्रीप होने पर किसी भी चीज़ से मेल नहीं खाता था।
सजुक

51

हां, आप इसे -Xया --debugविकल्प के साथ प्राप्त कर सकते हैं , जैसेmvn -X

...
[DEBUG] Reading global settings from C:\Maven\conf\settings.xml
[DEBUG] Reading user settings from C:\segphault\.m2\settings.xml
[DEBUG] Using local repository at C:\Repo
...

40

मावेन हेल्प प्लगइन स्थानीय रिपॉजिटरी पथ सहित स्थानीय सेटिंग्स दिखाएगा।

आप आज्ञा चाहते हैं:

mvn help:effective-settings

आउटपुट XML फॉर्मेट में सेटिंग्स दिखाएगा। स्थानीय रिपॉजिटरी तत्व की तलाश करें:

<localRepository xmlns="http://maven.apache.org/SETTINGS/1.1.0">/home/jrs/.mavenRepo</localRepository>

ऐसा लगता है कि यदि यह चेतावनी फेंकता है, तो आउटपुट XML प्रारूप में नहीं होगा।
सजुक

20

इस बीच आप इसे सरल तरीके से कर सकते हैं:

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout

आप यह भी उपयोग कर सकते हैं कि इस तरह से एक शेल चर प्रदान करने के लिए:

RESULT=$(mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout)

महत्वपूर्ण नोट: मावेन के हाल के संस्करण का उपयोग करें और निश्चित रूप से मावेन-हेल्प-प्लगइन के सबसे हाल के vesion ...

इसमें नई लाइन आदि के बिना परिणाम होगा।


यह उत्तर स्वीकृत उत्तर होना चाहिए क्योंकि यह एक समाधान देता है जो अब तक प्रस्तावित किसी भी अन्य समाधान की तुलना में एक क्लीनर परिणाम है।
ज़ार्टक

यह कम से कम कुछ प्लेटफार्मों / कॉन्फ़िगरेशन पर टूट गया है। मेरे लिए (fc 28, Maven 3.5.2), -q यह कोई आउटपुट नहीं देता है, हालांकि -q के बिना, संपत्ति है, लेकिन बाहर grepped होना चाहिए।
पावेल वेसेलोव

5

यह /home/.m2 निर्देशिका में होना चाहिए, फ़ोल्डर संभवतः छिपा हुआ है। तो, आपको छिपे हुए फ़ोल्डर देखने के लिए Ctrl + H की आवश्यकता होगी।


4

विंडोज़ उपयोगकर्ताओं के लिए

आमतौर पर यह में है: C:\Users\USER_NAME\.m2\repository
हालाँकि mvn help:effective-settingsकमांड निश्चित रूप से प्रतिक्रिया xml में स्थानीय पथ दिखाएगा।


अधिक सामान्य: ${user.home}/.m2/repositoryडिफ़ॉल्ट है जो सेटिंग में ओवरराइड किया जा सकता है । xml । mvn help:effective-settings 6 साल से अधिक समय पहले यहां एक उत्तर में उल्लेख किया गया है: stackoverflow.com/a/6670563/1744774
गेरोल्ड ब्रोसर

-1

आप -Xविकल्प का उपयोग करके डिबग मोड को सक्षम करके इसे प्राप्त कर सकते हैं और स्थानीय रिपॉजिटरी का उपयोग करने वाली रेखा का उल्लेख कर सकते हैं।


यह 8 साल से अधिक समय पहले यहां एक उत्तर में उल्लेख किया गया है: stackoverflow.com/a/5916233/1744774
गेरोल्ड ब्रोसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.