एक साधारण कमांड लाइन स्थानीय रिपॉजिटरी के लिए दूरस्थ maven2 विरूपण साक्ष्य डाउनलोड करने के लिए?


122

मेरे पास एक पुस्तकालय है जिसे मैं मावेन का उपयोग करके वितरित करता हूं। इस पुस्तकालय के विशिष्ट उपयोगकर्ता अपने अनुप्रयोगों के निर्माण के लिए मावेन का उपयोग नहीं करते हैं, लेकिन संभवतः मावेन के साथ कुछ परिचित हैं और शायद इसे स्थापित किया है।

मैं एक "सरल" एक लाइन कमांड को दस्तावेज करना चाहता हूं जो वे अपने पुस्तकालय की कलाकृतियों को अपने स्थानीय में डाउनलोड करने के लिए उपयोग कर सकते हैं ~/.m2/repositoryबिना आवश्यकता के कि वे इसे करने के लिए एक pom.xml सेट करते हैं।

मैंने सोचा था कि ऐसा करने का एक तरीका है, लेकिन मैं इसे install:install-fileऔर dependencyप्लगइन प्रलेखन के माध्यम से देखने के बाद इसे खोजने के लिए प्रतीत नहीं कर सकता । मैंने चीजों की कोशिश की:

mvn install:install-file -DrepositoryId=java.net -Durl=http://download.java.net/maven/2/ -Dfile=robo-guice-0.4-20091121.174618-1.jar -DpomFile=robo-guice-0.4-20091121.174618-1.pom -DgroupId=robo-guice -DartifactId=robo-guice -Dversion=0.4-SNAPSHOT -Dpackaging=jar

लेकिन मुझे लगता है कि मैं गलत पेड़ को भौंक रहा हूं क्योंकि ऐसा प्रतीत होता है कि इंस्टॉल प्लगइन का उपयोग स्थानीय रिपॉजिटरी में स्थानीय रूप से निर्मित फाइलों को कॉपी करने के लिए किया जाता है, न कि दूरस्थ कलाकृतियों को स्थानीय रिपॉजिटरी में डाउनलोड करने के लिए।

यह वह कलाकृति है जिसे मैं स्थापित करना चाहूंगा: http://download.java.net/maven/2/robo-guice/robo-guice/0.4-SNAPSHOT/

क्या मावेन का उपयोग करना संभव है?


का डुप्लीकेट stackoverflow.com/questions/1895492/...
इसहाक

जवाबों:


168

मावेन डिपेंडेंसी प्लगिन के संस्करण 2.1 के बाद से , एक निर्भरता है: इस उद्देश्य के लिए लक्ष्य प्राप्त करें। यह सुनिश्चित करने के लिए कि आप प्लगइन के सही संस्करण का उपयोग कर रहे हैं, आपको "पूरी तरह से योग्य नाम" का उपयोग करना होगा:

mvn org.apache.maven.plugins: maven-dependency-plugin: 2.1: get \
    -डुप्पुर्ल = http: //download.java.net/maven/2/ \ _
    -Dartifact = रोबो-guice: रोबो-guice: 0.4-SNAPSHOT

यह दिखाने के लिए अतिरिक्त सहायक है कि कैसे निर्भरता प्लगइन को स्थापित किया जाए।
सर्जियो अकोस्टा

2
पास्कल, क्या आप बता सकते हैं कि रिपॉजिटरी तक पहुंचने के लिए उपयोगकर्ता + पासवर्ड कैसे परिभाषित करें? उपयोगकर्ता के साथ चाल : पासवर्ड @ repourl काम नहीं किया।
गैबोर लिप्टेक

4
लक्ष्य अच्छा है, लेकिन मैं उस लक्ष्य निर्देशिका को कैसे परिभाषित कर सकता हूं, जहां मैं चाहता हूं कि फ़ाइल को कॉपी किया जाए? (और फ़ाइल नाम)
डोमिन

9
@domi (पश्चात के लिए बेलेंटेड उत्तर): "-Ddest = path / to / my.jar" का उपयोग करें; अन्यथा, यह सिर्फ आपके स्थानीय ~ / .m2 / रिपॉजिटरी में कॉपी किया जाता है (ऐसा लगता है कि ऐसा कुछ नहीं हुआ)। देखें maven.apache.org/plugins/maven-dependency-plugin/... = उदाहरण => mvn org.apache.maven.plugins: maven-निर्भरता-प्लगइन: 2.5.1: प्राप्त -DremoteRepositories = repo.maven.apache.org -कार्यक्रम = org.apache.ant: ant: 1.8.1 -Ddest = ant-1.8.1.jar (परिणाम: चींटी-1.8.1.jar वर्तमान निर्देशिका में)
michael

3
धन्यवाद! जबकि, आपके द्वारा पोस्ट किए गए डॉक्टर लिंक में, के Deprecated. Use remoteRepositoriesलिए है repoUrl। कृपया उत्तर शायद अपडेट करें :)
सप्ताहांत

46

उन्हें निर्भरता और चलाने के निर्देशों के रूप में सूचीबद्ध इन जार के साथ एक तुच्छ पोम दें:

mvn dependency:go-offline

यह स्थानीय रेपो पर निर्भरता को खींच लेगा।

एक अधिक प्रत्यक्ष समाधान निर्भरता है: मिलता है , लेकिन यह टाइप करने के लिए बहुत सारे तर्क हैं:

mvn dependency:get -DrepoUrl=something -Dartifact=group:artifact:version

अच्छा विचार है, हालांकि एक कमांड लाइन वे कॉपी-पेस्ट करना आसान हो जाएगा
एमएमबी

अगर मैं एक के बारे में सोच सकता हूँ मैं इसे पोस्ट करेंगे। मैं किसी भी प्लगइन के बारे में नहीं जानता, जो काफी कुछ कह रहा है। मुझे पता है कि कैसे एक लिखना है ...
bmargulies

getमोजो वास्तव में उम्मीद -DrepoUrl, उपस्थित होने के लिए नहीं -DrepositoryUrl। टाइप करने के लिए तर्कों के बारे में, कोई जादू नहीं है, आपको एक तरह से या दूसरे तरीके से इन informations को प्रदान करने की आवश्यकता है।
पास्कल थिवेंट

मेरी पहली योजना में, अंतिम उपयोगकर्ता केवल तीन अक्षर टाइप करता है: mvn। अन्य सभी टाइपिंग ऑप द्वारा की जाती है।
१२

22

मावेन डिपेंडेंसी प्लगिन के संस्करण 2.4 के रूप में , आप -Dest फ्लैग का उपयोग करके आर्टवर्क के लिए एक लक्ष्य गंतव्य को भी परिभाषित कर सकते हैं। यह गंतव्य विरूपण साक्ष्य के लिए एक फ़ाइल नाम (निर्देशिका नहीं) को इंगित करना चाहिए। उपयोग किए जा सकने वाले अतिरिक्त मापदंडों के लिए पैरामीटर पृष्ठ देखें

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get \
    -DremoteRepositories=http://download.java.net/maven/2 \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT \
    -Ddest=c:\temp\robo-guice.jar

2
धन्यवाद! -डस्ट को पदावनत के रूप में चिह्नित किया गया है। क्या कोई नया समाधान नया है?
दिमथ

1
निर्भरता का उपयोग करें: इसके बजाय लक्ष्य को कॉपी करें। maven.apache.org/plugins/maven-d dependency
Eric B.

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