2012-10-15 14 views
7

यह एक नोब सवाल है, इसलिए मुझे खेद है कि अगर मैं किसी को अपमानित करता हूं।क्लोजर प्रोजेक्ट में निर्भरता कैसे स्थापित करें

लेकिन यह कैसे मैं एक * nix कंप्यूटर पर झूला स्थापित करते हैं? हां, मैंने README.MD फ़ाइल पढ़ी है, लेकिन project.clj कैसे लाइब्रेरी जार ढूंढने के लिए कहता है (उदाहरण के लिए देखा जाता है)?

उत्तर

12

project.clj और करने के लिए निर्भरता (परियोजना-पहचान की जानकारी और संस्करण के वेक्टर) जोड़ने संपादित करें: project.clj में निर्भरता वेक्टर।

निर्भरता घोषणा इस तरह दिखती है: [seesaw "1.4.2"] जो आप http://clojars.org पर देखकर खोज कर पाते हैं।

आपका प्रोजेक्ट फाइल की तरह कम से कम नज़र कुछ करना चाहिए:


(defproject my-awesome-gui-application "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :dependencies [[org.clojure/clojure "1.4.0"] 
       [seesaw "1.4.2"]]) 

आप leiningen के एक नए संस्करण का उपयोग कर रहे हैं, तो आप अपनी निर्भरता पेड़ को देखने के लिए lein deps :tree लिख सकते हैं। दूसरे शब्दों में आप देख सकते हैं कि वास्तव में पुस्तकालयों का उपयोग किया जा रहा है, यानी। जिन्हें आपने घोषित किया और उनकी पारस्परिक निर्भरताएं।


$ lein deps :tree 
[org.clojure/clojure "1.4.0"] 
[seesaw "1.4.2"] 
    [com.jgoodies/forms "1.2.1"] 
    [com.miglayout/miglayout "3.7.4"] 
    [j18n "1.0.1"] 
    [org.fife.ui/rsyntaxtextarea "2.0.3"] 
    [org.swinglabs.swingx/swingx-core "1.6.3"] 
    [org.swinglabs.swingx/swingx-action "1.6.3"] 
    [org.swinglabs.swingx/swingx-autocomplete "1.6.3"] 
     [org.swinglabs.swingx/swingx-common "1.6.3"] 
    [org.swinglabs.swingx/swingx-painters "1.6.3"] 
    [org.swinglabs.swingx/swingx-plaf "1.6.3"] 

आप leiningen के एक पुराने संस्करण, प्रकार "lein deps" का उपयोग और ./libs में लग रहे हैं, तो देखते हैं कि क्या जार लाए जाने मिल गया (lein के नए संस्करण होशियार होते हैं और ~/.m2 में जार का उपयोग करने के सीधे उन्हें अपनी परियोजना में कॉपी करने के बजाय। निर्देशिका ~/.m2 आपके स्थानीय मेवेन भंडार का स्थान है। लीनिंगेन मेवेन से संबंधित है और आपके द्वारा निर्दिष्ट सभी निर्भरताओं को डाउनलोड करता है ताकि आपको सीधे मेवेन के बारे में चिंता न करें।)

मैं Maven और ~/.m2 में अपने स्थानीय Maven भंडार का उल्लेख किया। किसी किस्मत के साथ आपको कभी भी मेवेन के बारे में सोचना नहीं पड़ सकता है (शायद प्रोजेक्ट.क्लज में चिपकने के लिए जावा libs को देखने के लिए मेवेन सेंट्रल के माध्यम से ब्राउज़ करना), लेकिन ऐसे समय होते हैं जब आपको संदेह हो सकता है कि एक जार दूषित हो गया था या कुछ यह प्रभाव, और यह जानना अच्छा है कि आप अपने .m2 भंडार को हटाकर उस राज्य को उड़ा सकते हैं।

6

project.clj फ़ाइलों leiningen के लिए परियोजना विन्यास निर्दिष्ट करें।

Leiningen डाउनलोड और निर्भरता को स्थापित करता है project.clj फ़ाइल में निर्दिष्ट करता है और परियोजना शुरू होता है/repl प्रक्रिया चलाता है/एक जावा जार/जो कुछ भी करने के लिए परियोजना संकलित करता है। उपरोक्त लिंक देखें। संक्षेप में, लीनिंगन आपके मूल ओएस और मूल जावा-आधारित क्लोजर रनटाइम/कंपाइलर के बीच सबसे लोकप्रिय गोंद है।

आम तौर पर, आप किसी भी clojure libs (या यहां तक ​​clojure) स्थापित करने के लिए नहीं होना चाहिए। सिवाय इसके कि जब आपको वर्तमान प्रोजेक्ट को विकसित/डीबग करने के लिए अतिरिक्त libs की आवश्यकता होती है (और अक्सर आप नहीं करते), तो आप केवल लीनिंगन स्थापित करते हैं, और लीनिंगन उस प्रोजेक्ट के लिए निर्भरता स्थापित करेगा जिसे आप चलाने के लिए चाहते हैं।

अधिक विशिष्ट होने के लिए: लीनिंगन को maven पर प्रतिनिधि द्वारा अपने डाउनलोड स्थान/इंस्टॉल निर्देश प्राप्त होते हैं, जो बहुत दिलचस्प प्रोजेक्ट है। लेकिन संभवतः यदि आपका समय अनमोल है तो बहुत बारीकी से देखने लायक नहीं है।

+0

मुझे यह स्पष्टीकरण पसंद है। यह मुझे leiningen के बारे में बहुत सारे संदेह स्पष्ट किया। – Zchpyvr

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