2011-12-01 23 views
19

मेरे पास कई अलग-अलग लीनिंग परियोजनाएं हैं जो स्पष्ट रूप से एक-दूसरे पर निर्भर हो सकती हैं।मैं कई परियोजनाओं के साथ काम करने के लिए लीनिंगन कैसे स्थापित कर सकता हूं?

उदाहरण:

~/projects/mywebapp (my own project) 
~/projects/noir  (a clone of the github repo) 
~/projects/clojureql (a clone of the github repo) 

मैं उन सभी एक ही समय में एक ही JVM में संकलित करना चाहते हैं। मैं सबसे नवीनतम सुविधाएं (नई करता खींच/अपने ही प्रतिबद्ध बनाने) और lein जार या lein deps चलाने की ज़रूरत नहीं है और निश्चित रूप वीएम को पुनः आरंभ करने की जरूरत नहीं Git रेपोस चलाने के लिए अगर मैं परियोजनाओं से किसी को बदलना चाहते हैं।

lein स्वांक चल रहा है, Emacs के भीतर से के बाद, मैं repl से कनेक्ट और mywebapp से एक फ़ाइल है, जो नॉई से एक फ़ाइल की आवश्यकता है (सी-सी-कश्मीर के साथ) संकलन:

यहाँ एक उपयोग मामला है। यह मेरी परियोजना निर्देशिका में फ़ाइल का संस्करण पाता है। बाद में, मैं उस फ़ाइल को खोलता हूं, इसे संपादित करता हूं, और इसे संकलित करता हूं (सी-सी-के साथ)।

ध्यान दें कि मैं ऑटो संकलन के लिए जब मैं Git पुल नहीं कर पूछ रहा हूँ। मैं सिर्फ जेवीएम को पुनरारंभ नहीं करना चाहता हूं या लंबी जार संकलन प्रक्रियाओं को करना चाहता हूं।

leiningen में यह संभव है? मैं इसे कैसे स्थापित कर सकता हूं?

उत्तर

17

Lein FAQ मदद से यह सवाल करता है?

क्यू: मैं समानांतर में दो परियोजनाओं को हैक करना चाहते हैं, लेकिन यह उन दोनों के बीच स्विच करने के लिए कष्टप्रद है।

: चेकआउट निर्भरताओं नामक एक सुविधा का उपयोग करें। आप अपने प्रोजेक्ट जड़ में एक निर्देशिका कहा जाता checkouts बना सकते हैं और इसे में कुछ अन्य परियोजना जड़ों सिमलिंक हैं, तो Leiningen आप समानांतर में उन पर हैक करने की अनुमति देगा। इसका मतलब है कि निर्भरता में परिवर्तन पूरे के माध्यम से जाना स्थापित/स्विच परियोजनाओं/deps/पुनः आरंभ-repl चक्र बिना मुख्य परियोजना में दिखाई जाएगी। ध्यान दें कि यह प्रोजेक्ट को सूचीबद्ध करने के लिए प्रतिस्थापन नहीं है: निर्भरता; यह बस पूरक है कि कड़े परिवर्तन चक्र के लिए।

+0

धन्यवाद! मुझे इसे अक्सर पूछे जाने वाले प्रश्नों में याद किया होगा। –

+1

बहुत उपयोगी। वह जानकारी वास्तव में मुख्य दस्तावेज में होनी चाहिए। – Glen

3

यदि आप पहले से ही स्वैंक का उपयोग कर रहे हैं, तो आपको लीन चेकआउट निर्भरताओं की आवश्यकता नहीं है। आप केवल अपनी परियोजना सी-सी सी-के कर सकते हैं (जो नोयर/जो भी के जारड संस्करणों को लोड करेगा), और उसके बाद नोयर और सी-सी सी-के के स्थानीय संस्करण को भी ब्राउज़ करें। स्वैंक खुशी से सभी कोड को आपकी प्रतिलिपि भेजता है, और जेवीएम को कभी भी यह पता नहीं होना चाहिए कि यह एक अलग जगह से आया है!

मैं केवल छोटे बदलावों के लिए इसकी अनुशंसा कर सकता हूं, क्योंकि मुझे लगता है कि अगर आप नोयर.कोर पर संकलित करते हैं, जो कहते हैं (कहें) noir.internal पर निर्भर करता है, तो क्लोजर स्थानीय को संकलित करते समय भी noir.internal के जारे हुए संस्करण को लोड करेगा noir.core का संस्करण। फिर भी, यह सामान्य रूप से एक आसान चाल है।

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

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