leiningen自定义任务不是一项任务

时间:2016-11-28 18:44:08

标签: clojure task leiningen

我有以下def toString(x: Any) = x.toString toString(myValueClass)

.lein-classpath

然后在任务下,我有

tasks

然后我有tasks > leiningen >foo-bar.clj

的以下内容
foo.clj

当我运行(ns leiningen.foo-bar) (defn foo-bar [project & args] (println "foo")) 时,我会收到:

lein foo-bar

运行'foo-bar' is not a task. See 'lein help'. Did you mean this? foo-bar 会产生(在一般默认任务中):

lein help

我在使用java 1.8.0_77的leiningen 2.7.1

foo Task: 'foo-bar' not found .lein-classpathtasks都在项目根目录

更多诊断结果:

project.clj生成:which lein /usr/local/bin/lein不包含~/.lein,也不包含任何任务定义 .lein-classpath不存在

我将如何定义此任务?为什么它"有点"看到任务(你的意思是这个吗?......)

2 个答案:

答案 0 :(得分:3)

回想一下,对于所有Clojure文件,不仅仅是leiningen任务,名称空间foo-bar必须位于名为foo_bar.clj的文件中,而不是foo-bar.clj

答案 1 :(得分:1)

此错误表示leiningen无法找到任务文件。

请记住.lein-classpath必须位于项目根目录中,就在project.clj所在的位置。此外,路径相对于项目根目录,因此如果您的任务位于<root>/src/tasks,则必须将src/tasks放在.lein-class路径中。