2015-07-02 22 views
12

Leiningen için bir proje içinde komisyon benzeri görevleri tanımlamanın bir yolu var mı?projeye özel görevleri tanımlamak leiningen

benim proje ad alanındaki bir işlevi çağırmak olacaktır Leiningen project.clj özel bir görev tanımlamak istediğiniz

+1

Kişisel soruya sadece bir takma addır (benim gibi) tırmık bilmeyen insanlar için oldukça belirsizdir. Detaylandırır mısın? İhtiyacınız olan şeyleri tahmin etme konusunda çılgın bir şekilde (make-style hedefleri hakkında düşünmek), sanırım gereksinimlerinize daha uygun [boot] (https://github.com/boot-clj/boot) bulabilirsiniz. – schaueho

cevap

17

Sen define project-specific aliases can örn:

: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"]]} 

Bu özelliği birleştirmek mümkün olmalıdır

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

Şimdikullanabilirsiniz: lein-exec plugin ile proje içinde keyfi Clojure kod çalıştırmasına için bir takma ad tanımlamak için lein ile 210 görev:

lein dosmth 

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