2012-01-05 8 views
6

के साथ मेवेन स्थानीय भंडारों में निर्भरता मैं क्लोजर में lein new प्रोजेक्ट शुरू कर रहा हूं और goose आलेख निष्कर्षण लाइब्रेरी का उपयोग करना चाहता हूं। दुर्भाग्य से मुझे किसी भी सार्वजनिक रूप से उपलब्ध मैवेन रिपोजिटरी पर उस लाइब्रेरी का जार नहीं मिला, इसलिए मैंने इसे स्थानीय मैवेन रिपोजिटरी में जोड़ने के लिए तैयार किया।लेवेनिंग

परियोजना निर्देशिका में, मैं हंस जार और उसके pom.xml फ़ाइलों की नकल की और

mkdir maven-repo 
mvn install:install-file -Dfile=goose-2.1.6.jar -DartifactId=goose -Dversion=2.1.6 \ 
    -DgroupId=local -Dpackaging=jar -DlocalRepositoryPath=maven-repo -DpomFile=pom.xml 

किया और :dependencies में project.clj

:repositories {"local" ~(str (.toURI (java.io.File. "maven-repo")))} 

और [local/goose "2.1.6"] के लिए निम्न गयी। अब जब मैं lein deps करता हूं, तो मुझे हंस-2.1.6.jar फ़ाइल को lib निर्देशिका में जोड़ा जाता है, लेकिन हंस की निर्भरता नहीं होती है। वे हंस की pom.xml फ़ाइल में सूचीबद्ध हैं।

क्या कोई तरीका है कि मैं अपने project.clj में हंस की निर्भरताओं को सूचीबद्ध करने के अलावा इसे ठीक कर सकता हूं?

उत्तर

10

आप लंबा mvn आदेश के बजाय lein-localrepo उपयोग कर सकते हैं: https://github.com/kumarshantanu/lein-localrepo

इस तरह स्थापित करें:

lein localrepo coords target/goose-2.1.6.jar | xargs lein localrepo install

हालांकि, कि अकेले में पोम फ़ाइल को स्थापित करने में मदद नहीं करेगा रेपो। इसके अतिरिक्त आपके इस चलाना चाहिए:

cp pom.xml ~/.m2/repository/goose/goose/2.1.6/goose-2.1.6.pom

ध्यान दें कि यह उदाहरण हंस में groupId=goose, artifactId=goose के रूप में स्थापित किया जाएगा। यदि आप चाहें तो आप ओवरराइड कर सकते हैं, और शायद आपको चाहिए।

+0

हां, मैंने लंबे एमवीएन कमांड का सहारा लेने से पहले अपनी 'लियन-लोकलपो' परियोजना देखी है। मैंने एमवीएन का चयन किया क्योंकि इसका सिर्फ एक कमान है :)। वैसे भी, मैं भी इस विधि को आजमाउंगा। क्या आप मुझे बता सकते हैं कि अगर मैं 'लीन डीपीएस' करता हूं तो यह हंस की निर्भरता प्राप्त करेगा? –

+0

बहुत बढ़िया। इस विधि का उपयोग करके, मुझे अपनी lib निर्देशिका में हंस की निर्भरता मिलती है। क्या आप थोड़ा और समझ सकते हैं कि अंतर क्या है? धन्यवाद एक गुच्छा आदमी :) –

+0

इसके अलावा, इन स्थानीय जारों को कैसे संस्करणित किया जाना चाहिए? मैं सोच सकता हूं कि उन्हें एक विक्रेता निर्देशिका में जोड़ना है और इस परियोजना को क्लोन करने वाले प्रत्येक सिस्टम पर उपरोक्त स्थानीय रेपो आदेश चलाएं। कोई बेहतर तरीका? –