2013-02-08 8 views
14

जैसा कि मैं इसे समझता हूं, जब मैं nrepl-jack-in करता हूं तो एक आरपीएल प्रोजेक्ट.क्लज में परिभाषित सभी निर्भरताओं के साथ लोड होता है। यदि मैं एक नई निर्भरता जोड़ने के लिए project.clj को अद्यतन करता हूं, तो क्या मुझे सर्वर को मारने और nrepl-jack-in को फिर से चलाने की आवश्यकता है या वर्तमान आरईपीएल में निर्भरताओं को अद्यतन करने का कोई तरीका है?nrepl.el के साथ काम करते समय मैं क्लोजर निर्भरताओं को कैसे अपडेट करूं?

उत्तर

5

अद्यतन: हो सकता है कि वहाँ कुछ उम्मीद है, https://github.com/cemerick/pomegranate

पहले देखें:

संक्षिप्त उत्तर है हाँ - आप JVM प्रक्रिया पुनः आरंभ करने की क्या ज़रूरत है।

मुझे लाइव प्रतिलिपि में निर्भरताओं को अद्यतन करने का कोई अच्छा तरीका नहीं है। Leiningen (nrepl-jack-in द्वारा बुलाया जाता है) निर्भरताओं का प्रबंधन करेगा और केवल पुनरारंभ करने पर क्लासपाथ स्थापित करेगा। कुछ गतिशील और चालाक करने की कोशिश करना बेहद नाजुक है।

नीचे पाठ बाहर मारा तथ्यात्मक रूप से सच है लेकिन पर एक पल की प्रतिबिंब ऐसी बुरी सलाह लग रहा था कि मैं इसे इस तरह के रूप में चिह्नित किया है ...

आप उपयोग कर सकते हैं आप एक स्थानीय निर्भरता (जैसे जार फ़ाइल) है, तो लंबे समय तक प्रतिकृति पर फ़ंक्शन add-classpath को हटा दिया गया। लेकिन आप जावा क्लासलोडर के ड्रैगन इन्फेस्टेड दलदल में प्रवेश करेंगे।

1

अनार मौजूद होने से पहले, मैंने गतिशील रूप से निर्भरता लोड करने के लिए अपनी खुद की लाइब्रेरी लिखी।

https://github.com/bmillare/dj

lein2 की रिहाई और यह कैसे कवर के तहत pomegrante उपयोग कर सकते हैं के बाद, मैं dj दुबारा लिखा यह नीचे का उपयोग करें। इसलिए, यदि आप 'डीजे' का उपयोग नहीं करते हैं, तो यह देखने के लिए एक संदर्भ के रूप में उपयोगी हो सकता है कि यह क्या कर रहा है।

0

आरईपीएल को पुनरारंभ करना सबसे आसान तरीका प्रतीत होता है।

M-x cider-restart 

भी एक lein deps पूरा करने के लिए प्रकट होता है कि: इस के साथ किया जा सकता है। इसलिए एक नई निर्भरता जोड़ने की पूरी प्रक्रिया में require को project.clj जोड़ने और फिर cider-restart का आविष्कार करना शामिल है।


एक और (बहुत सुविधाजनक) जिस तरह से clj-refactor उपयोग करने के लिए है। विरूपण साक्ष्य (C-c m a p या cljr-add-project-dependency) जोड़ना संस्करण आप चाहते हैं के लिए संकेत देगा, स्वचालित रूप से अपने project.clj फ़ाइल में नई निर्भरता रखा, और अपने सत्र से लोड करें।

संबंधित मुद्दे

 संबंधित मुद्दे