2015-07-02 2 views
12

में प्रोजेक्ट विशिष्ट कार्यों को परिभाषित करें क्या लीनिंग के लिए प्रोजेक्ट के भीतर कार्यों की तरह रेक को परिभाषित करने का कोई तरीका है।लीनेनिंग

मैं जो अपने प्रोजेक्ट नाम स्थान में एक समारोह लागू करेगा leiningen project.clj में एक कस्टम कार्य को परिभाषित करना चाहते

+1

आपका प्रश्न करने के लिए एक उपनाम है जो लोग (मेरे जैसे) रेक पता नहीं है के लिए काफी स्पष्ट नहीं है। क्या आप विस्तार से समझा सकते हैं? आपको जो चाहिए उसे जबरदस्त अनुमान लगाएं (मेक-स्टाइल लक्ष्य के बारे में सोचें), मुझे लगता है कि आपको [boot] (https://github.com/boot-clj/boot) आपकी आवश्यकताओं के अनुरूप बेहतर हो सकता है। – schaueho

उत्तर

17

आप define project-specific aliases कर सकते हैं, उदाहरण के लिए:

:aliases {"launch" ["run" "-m" "myproject.main"] 
      ;; Values from the project map can be spliced into the arguments 
      ;; using :project/key keywords. 
      "launch-version" ["run" "-m" "myproject.main" :project/version] 
      "dumbrepl" ["trampoline" "run" "-m" "clojure.main/main"] 
      ;; :pass-through-help ensures `lein my-alias help` is not converted 
      ;; into `lein help my-alias`. 
      "go" ^:pass-through-help ["run" "-m"] 
      ;; For complex aliases, a docstring may be attached. The docstring 
      ;; will be printed instead of the expansion when running `lein help`. 
      "deploy!" ^{:doc "Recompile sources, then deploy if tests succeed."} 
      ;; Nested vectors are supported for the "do" task 
      ["do" "clean" ["test" ":integration"] ["deploy" "clojars"]]} 

इस सुविधा को गठबंधन करने के लिए सक्षम होना चाहिए

:aliases {"dosmth" ["exec" "-ep" "(use 'myproject.main) (foo 42)"]} 

अब आपउपयोग कर सकते हैं: lein-exec plugin साथ मनमाना clojure कोड अपनी परियोजना के भीतर चलाने के लिए एक उपनाम परिभाषित करने के लिए lein साथ 210 कार्य:

lein dosmth 

जो सिर्फ

lein exec -ep "(use 'myproject.main) (foo 42)"