2015-07-02 13 views
12

Có cách nào để xác định rake như các tác vụ trong một dự án cho leiningen hay không.xác định các nhiệm vụ cụ thể của dự án trong leiningen

Tôi muốn xác định một nhiệm vụ tùy chỉnh trong project.clj leiningen mà sẽ gọi một hàm trong không gian tên dự án của tôi

+1

Câu hỏi của bạn là khá rõ ràng đối với những người không biết cào (như tôi). Bạn có thể xây dựng? Ngẫu nhiên đoán về những gì bạn cần (suy nghĩ về các mục tiêu tạo kiểu), tôi nghĩ bạn có thể tìm thấy [khởi động] (https://github.com/boot-clj/boot) phù hợp hơn với yêu cầu của bạn. – schaueho

Trả lời

17

Bạn có thể define project-specific aliases, ví dụ:

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

Bạn sẽ có thể kết hợp tính năng này với lein-exec plugin để xác định một bí danh để chạy mã clojure tùy ý trong phạm vi dự án của bạn:

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

Bây giờ bạn có thể sử dụng dosmth nhiệm vụ với lein:

lein dosmth 

mà chỉ là một bí danh để

lein exec -ep "(use 'myproject.main) (foo 42)" 
Các vấn đề liên quan