मावेन में एक निर्भरता जोड़ें


134

मेरे पास एक जार फ़ाइल कैसे है जो मेरे पास है और इसे maven 2 में निर्भरता प्रणाली में जोड़ें? मैं इस निर्भरता का अनुरक्षक बनूंगा और मेरे कोड को क्लास के रास्ते में इस जार की आवश्यकता है ताकि यह संकलित हो जाए।

जवाबों:


139

आपको यह दो चरणों में करना होगा:

1. अपने JAR को एक groupId, विरूपण साक्ष्य और संस्करण दें और इसे अपने भंडार में जोड़ें।

यदि आपके पास एक आंतरिक रिपॉजिटरी नहीं है, और आप अपने JAR को अपने स्थानीय रिपॉजिटरी में जोड़ने की कोशिश कर रहे हैं, तो आप इसे किसी भी प्रकार के मनमाने ढंग से GroupId / विरूपण साक्ष्य का उपयोग करके स्थापित कर सकते हैं:

mvn install:install-file -DgroupId=com.stackoverflow... -DartifactId=yourartifactid... -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/jarfile

यदि आपके पास एक है, तो आप इसे अपने आंतरिक भंडार में भी तैनात कर सकते हैं और इसे अपने संगठन के अन्य डेवलपर्स को उपलब्ध कराना चाहते हैं। मैं कलाकृतियों को जोड़ने के लिए अपने रिपॉजिटरी के वेब आधारित इंटरफेस का उपयोग करता हूं, लेकिन आपको उसी चीज का उपयोग करने में सक्षम होना चाहिए mvn deploy:deploy-file ...

2. इस JAR को संदर्भित करने के लिए निर्भर परियोजनाओं को अपडेट करें।

फिर तत्वों को निम्नलिखित में जोड़कर JAR का उपयोग करने वाली परियोजनाओं के pom.xml में निर्भरता को अपडेट करें:

<dependencies>
    ...
    <dependency>
        <groupId>com.stackoverflow...</groupId>
        <artifactId>artifactId...</artifactId>
        <version>1.0</version>
    </dependency>
    ...
</dependencies>

3
क्या आप तैनाती के बारे में अधिक विवरण जोड़ सकते हैं? हमारे पास एक आंतरिक रिपॉजिटरी है, और मैं अपने स्थानीय जार स्थापित फाइल को उस रिपॉजिटरी में अन्य डेवलपर्स को तैनात करना चाहता हूं और हमारे बिल्ड सर्वर को भी जार मिलेगा।
केवली

इस उत्तर को सभी पसंद प्राप्त करना चाहिए! मैंने Google ऐप इंजन और हरोकू दोनों पर अपनी मावेन परियोजनाओं के लिए निर्भरता को सफलतापूर्वक जोड़ने के लिए इसका उपयोग किया है।
सिंह सी हान

93

आप मावेन रिपॉजिटरी में निर्भरता को भी निर्दिष्ट कर सकते हैं। उपयोगी हो सकता है जब आपकी टीम के लिए कोई केंद्रीय मावेन भंडार मौजूद नहीं है या यदि आपके पास सीआई सर्वर है

    <dependency>
        <groupId>com.stackoverflow</groupId>
        <artifactId>commons-utils</artifactId>
        <version>1.3</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/commons-utils.jar</systemPath>
    </dependency>

4
क्या मैं जार के बजाय दूसरी पोम फाइल पर निर्भर हो सकता हूं?
Jayen

45

दरअसल, इसकी जांच करने पर, मुझे लगता है कि ये सभी उत्तर गलत हैं। हमारे स्तर की समझ के कारण आपका प्रश्न भ्रामक है maven। और मैं कहता हूं कि हमारी वजह से मैं अभी परिचय कर रहा हूं maven

में Eclipse, जब आप, अपनी परियोजना के लिए एक जार फ़ाइल जोड़ने के सामान्य रूप से आप मैन्युअल रूप से जार डाउनलोड करें और फिर में छोड़ने के लिए चाहते हैं lib निर्देशिका। मावेन के साथ, आप इसे इस तरह से नहीं करते हैं। यहाँ आप क्या करते हैं:

  • Mvanrepository पर जाएं
  • उस लाइब्रेरी को खोजें जिसे आप जोड़ना चाहते हैं
  • dependencyस्टेटमेंट को अपने में कॉपी करेंpom.xml
  • के माध्यम से पुनर्निर्माण mvn

अब, निर्भरता की सूची के साथ-साथ mavenकनेक्ट और डाउनलोड करेगा jar, और स्वचालित रूप से किसी भी अतिरिक्त निर्भरता को हल कर jarसकता है जो हो सकता है। तो अगर jarजरूरत कॉमन्स-लॉगिंग की भी है, तो उसे डाउनलोड भी किया जाएगा।


5
मैं स्प्रिंग टूल सूट (ग्रहण पर निर्मित) का उपयोग कर रहा हूं। उपरोक्त समाधान में चरण 1 और 2 के बाद: 1. STS संपादक में pom.xml खोलें, नीचे "निर्भरताएं" टैब पर क्लिक करें 2. निर्भरता समूह में "जोड़ें" पर क्लिक करें 3. ब्राउज़र विंडो से "मावेन" टैब निर्भरता जानकारी की प्रतिलिपि बनाएं / पेस्ट करें ( GroupId, विरूपण साक्ष्य, संस्करण) एसटीएस में "निर्भरता का चयन करें" पॉपअप में इसी फ़ील्ड में। ठीक क्लिक करें 5. सहेजें pom.xml सहेजें एक बार, हार्ड ड्राइव पर मेरी मावेन निर्देशिका और एसटीएस में मावेन निर्भरता सेटिंग सेकंड के भीतर अपडेट की जाती है। आप सीधे .xml को संपादित कर सकते हैं, लेकिन टूल का उपयोग करने से xml प्रारूप की समस्याओं से बचने में मदद मिल सकती है।
क्रिस आर

2
यह वास्तव में चीजों को करने का पसंदीदा तरीका है, लेकिन ऐसी परिस्थितियां हैं जहां आप ऐसा नहीं कर सकते हैं (उदाहरण के लिए मालिकाना जार mvanreposit पर नहीं)। उस स्थिति में आपको इसे "मैन्युअल रूप से" जोड़ने की आवश्यकता होगी, जिस स्थिति में किसी अन्य उत्तर का समाधान होगा।
थंडरफॉज

यह भी संभव है कि पूछा गया प्रश्न किसी शुरुआती प्रश्न से कम हो। मैंने इसे उन लोगों के लिए रखा है, जो उचित फेनटेसिंग के बिना कुछ करना चाहते हैं, जो मावेन के साथ काम करने के समय से आता है। (जैसा कि मैं उस समय था)
केवली

KISS धन्यवाद, मैंने पढ़ा है कि यह जावा में सी # Nuget बराबर है, लेकिन मैं यह पता लगाने के लिए क्लिक करें या चलाने के लिए cmd के लिए क्या बटन कोशिश कर रहा था। ठीक 1: 1 नहीं, बल्कि काम करता है।
टेरेंस

कैसे intelleJ में maven में परियोजना के पुनर्निर्माण के लिए?
इरफान नसीम

14

मैं यह करूँगा:

  1. अपने पोम में अपनी पसंद के अनुसार निर्भरता जोड़ें:

    <dependency>
            <groupId>com.stackoverflow...</groupId>
            <artifactId>artifactId...</artifactId>
            <version>1.0</version>
    </dependency>

  2. mvn installइसे चलाने के लिए जार डाउनलोड करने और असफल होने का प्रयास करेंगे। प्रक्रिया पर, यह आपको त्रुटि संदेश के साथ जार को स्थापित करने की पूरी कमान देगा। उस कमांड को कॉपी करें और चलाएं! आसान है ना ?!


3

मुझे लगता है कि आप पूछ रहे हैं कि एक "प्रसिद्ध भंडार" पर निर्भरता को कैसे आगे बढ़ाया जाए, और यह न पूछकर कि कैसे अपने पीओएम को अपडेट किया जाए।

यदि हाँ, तो यह क्या आप पढ़ना चाहते हैं है।

और किसी के लिए एक आंतरिक रिपॉजिटरी सर्वर स्थापित करने की तलाश में, यहां देखें (मावेन 2 का उपयोग करने के साथ समस्या का आधा हिस्सा मिल रहा है)


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