2015-07-02 14 views
12

Czy istnieje sposób definiowania zadań rake takich jak w projekcie dla leiningen.definiowanie zadań specyficznych dla projektu w leiningen

chcę definiować zadania niestandardowego w Leiningen project.clj która będzie wywołać funkcję w moim nazw projektu

+1

Twoje pytanie jest dość niejasne dla ludzi, którzy nie znają prowizji (jak ja). Czy możesz rozwinąć? Dziwne zgadywanie, czego potrzebujesz (myśląc o celach typu make-style), myślę, że możesz znaleźć [boot] (https://github.com/boot-clj/boot) lepiej dopasowany do twoich wymagań. – schaueho

Odpowiedz

17

Można define project-specific aliases, np:

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

Powinieneś być w stanie połączyć tę funkcję z lein-exec plugin do zdefiniowania aliasu do uruchomienia dowolnego kodu Clojure ramach projektu:

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

teraz można użyć dosmth zadanie z lein:

lein dosmth 

który jest tylko aliasem

lein exec -ep "(use 'myproject.main) (foo 42)" 
Powiązane problemy