Trong Leiningen phiên bản 1.xx tôi đã có thể để xác định một lein foo
nhiệm vụ chỉ có giá trị trong một dự án duy nhất bằng cách đặt sau của dự án mà project.clj
:Dự án cấp Leiningen Plugin
(defproject tester "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.4.0"]])
;; Create a task, "foo"
(ns leiningen.foo
(:require (leiningen [uberjar :as uberjar])))
(defn foo [project & args]
(println "Do something here first, then make the uberjar.")
(uberjar/uberjar project))
Bạn có thể nhận được nhiều hơn một chút thông tin về vấn đề này ở đây:
http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/
Trong 2.xx, tôi không thể làm điều này nữa (ví dụ, tôi nhận được 'foo' is not a task.
dường như bằng cách nào, cách quá mức cần thiết đối với tôi phải bắt đầu một dự án riêng biệt cho nhiệm vụ này. Vẫn có thể xác định tác vụ trong project.clj cho leiningen 2.x.x?
Xin lỗi, không có súc sắc. Tôi cũng tìm thấy mẹo đó và dường như nó không có tác dụng gì trong trường hợp này. Tôi đã cập nhật câu hỏi của mình với một 'project.clj' hoàn chỉnh để hoàn thành ví dụ. Cảm ơn cho những nỗ lực. – charleslparker
Tôi không nhận ra rằng bạn đã có định nghĩa "foo" bên trong tệp project.clj của mình. Cập nhật câu trả lời của tôi với câu trả lời đúng (hy vọng) – DanLebrero
Điều đó đã làm được! Đó là một chút đau đớn hơn, nhưng vẫn không quá tệ. Cảm ơn! – charleslparker