cha*_*ker 11 clojure leiningen
在Leiningen版本1.xx中,我能够lein foo
通过在该项目中添加以下内容来定义仅在单个项目中有效的任务project.clj
:
(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))
Run Code Online (Sandbox Code Playgroud)
您可以在此处获取有关此内容的更多信息:
http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/
在2.xx中,我不能再这样做了(也就是说,我觉得'foo' is not a task.
这似乎是一种方式,因为我必须为这个任务启动一个单独的项目. 是否仍然可以在project.clj中定义一个任务为leiningen 2.xx?
简短的回答是"不",但定义项目级别任务仍然相当容易:添加:eval-in-leiningen true
到您的defproject
定义并将任务定义移动到src/leiningen/foo.clj
.