在 Leiningen 版本 1.x.x 中我能够定义一个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))
您可以在这里获取更多相关信息:
http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/ http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/
在 2.x.x 中,我无法再这样做(即,我得到'foo' is not a task.
对于我来说,必须为这项任务启动一个单独的项目似乎太过分了。是否仍然可以在 project.clj 中为 leiningen 2.x.x 定义任务?
简短的答案是“否”,但定义项目级任务仍然相当容易:添加:eval-in-leiningen true
给你的defproject
定义并将任务定义移至src/leiningen/foo.clj
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)