2013-05-06 8 views
15

बनाने के बिना लीनिंगेन के साथ पुस्तकालय स्थापित करना मैं क्लोजर सीख रहा हूं और रुबी पृष्ठभूमि से आ रहा हूं।प्रोजेक्ट

मैं gem install <library> के समान कुछ ढूंढ रहा हूं। lein install के विभिन्न उत्सव इस बिल में फिट नहीं लग रहे हैं।

क्या स्थानीय रूप से लाइब्रेरी को स्थापित करने का कोई तरीका है ताकि इसे एक परियोजना बनाने की आवश्यकता के बिना आरईपीएल में संदर्भित किया जा सके?

उत्तर

6

ऐसा लगता है, आप लीन के साथ एक लाइब्रेरी स्थापित करना चाहते हैं। यहाँ plugin है, यह स्थापित करने और

lein localrepo install <filename> <[groupId/]artifactId> <version> 
3

जावा की तरह इस्तेमाल करते हैं और इस प्रकार clojure आम तौर पर नहीं करते हैं विश्व स्तर पर स्थापित पुस्तकालयों का विचार है। आपको हमेशा निर्भरता के न्यूनतम सेट के साथ एक वर्गपथ बनाना चाहिए। आपको इस क्लासपाथ को निर्दिष्ट और प्रबंधित करने के लिए किसी भी तरह की आवश्यकता है और ऐसा करने का सबसे आसान तरीका लीनिंगेन के साथ है, जिसके लिए एक परियोजना की आवश्यकता होती है।

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

हमेशा उपलब्ध पुस्तकालयों का एक सेट रखने का सबसे आसान तरीका एक 'स्क्रैच' परियोजना है जिसे आप एक नई परियोजना शुरू करने से पहले आरईपीएल प्रयोगों के लिए उपयोग करते हैं। यह एक ओवरहेड का ज्यादा नहीं है।

3

lein 2 में आप पैकेज के साथ profiles.clj आप स्थापित करना चाहते अद्यतन कर सकते हैं: lein के साथ किसी भी परियोजना के पहले रन के साथ

~\user\.lein\profiles.clj 

, स्थानीय रेपो क्या प्रोफाइल में incereased गया था के साथ अद्यतन किया जाएगा। CLJ।

कभी-कभी मैं प्रोजेक्ट फ़ोल्डर में बिना लीन डीपी चलाता हूं, यह आपके लिए स्थानीय रेपो अपडेट करेगा।

इस तरह आप अपनी प्रोजेक्ट.क्लोज में कोई लाइब्रेरी जोड़ सकते हैं या इसे प्रतिलिपि से कॉल कर सकते हैं और इसे स्थानीय रेपो से निकाला जाएगा।

6

यदि आपका उद्देश्य केवल आरपीएलएल में पुस्तकालयों को लोड करना है तो alembic का उपयोग करने पर विचार करें। यह गतिशील रूप से classpaths लोड करता है, निर्भरताओं को हल करता है और स्वचालित रूप से भंडारों से पुस्तकालय खींचता है।

(require 'alembic.still) 
(alembic.still/distill '[enlive "1.1.1"]) 

यह बस अपने .lein/project.clj के लिए निम्न प्रविष्टि जोड़ने के लिए आप की आवश्यकता है::

{:dev {:dependencies [[alembic "0.1.1"]]}} 

देखें this answer

यहाँ एक उपयोग है।