如何在发布clojure leiningen项目时使用lein exec任务:release-tasks?

时间:2015-01-08 05:23:50

标签: clojure leiningen

我正在使用lein exec插件任务作为我的:release-tasks向量中的任务,但每当其中一个lein exec任务完成,其余的发布任务都不会运行。

我的:发布任务是:

$ lein pprint :release-tasks
[["vcs" "assert-committed"]
 ["change" "version" "leiningen.release/bump-version" "release"]
 ["exec" "bin/set-version-from-project.clj"]
 ["vcs" "commit"]
 ["vcs" "tag"]
 ["exec" "bin/make-bin.clj"]
 ["change" "version" "leiningen.release/bump-version"]
 ["exec" "bin/set-version-from-project.clj"]
 ["vcs" "commit"]
 ["vcs" "push"]]

当我发布它时会停止在第一个exec任务中,但会返回一个成功的退出代码:

$ DEBUG=1 lein release
Leiningen's classpath: /Users/paul/.lein/self-installs/leiningen-2.5.0-standalone.jar
Applying task release to []
Applying task change to [version leiningen.release/bump-version release]
Applying task exec to [bin/set-version-from-project.clj]
$ echo $?
0

当我单独运行exec任务时,它正确运行并返回一个成功的退出代码:

$ lein exec bin/set-version-from-project.clj
$ echo $? 
0

如何获得所有这些:发布任务按顺序运行?

1 个答案:

答案 0 :(得分:1)

我从lein-exec插件切换到lein-oneoff插件。它是一个类似的插件,适用于:release-tasks。

这是工作:发布任务。

$ lein pprint :release-tasks
[["vcs" "assert-committed"]
 ["change" "version" "leiningen.release/bump-version" "release"]
 ["oneoff" "bin/set-version-from-project.clj"]
 ["vcs" "commit"]
 ["vcs" "tag"]
 ["oneoff" "bin/make-bin.clj"]
 ["change" "version" "leiningen.release/bump-version"]
 ["oneoff" "bin/set-version-from-project.clj"]
 ["vcs" "commit"]
 ["vcs" "push"]]