2016-11-28 50 views
1

我有以下.lein-classpathleiningen自定義任務不是一個任務

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產生(一般默認任務之一):

foo  Task: 'foo-bar' not found 

我在leiningen 2.7.1與Java 1.8.0_77

.lein-classpathtasksproject.clj都在項目根

更多的診斷結果:

which lein生產:/usr/local/bin/lein ~/.lein不含.lein-classpath,也沒有任何任務定義 /etc/leinrc不存在

我怎麼會去定義這個任務嗎?爲什麼它「排序」看到任務(你的意思是這個?)

回答

3

回想一下,對於所有Clojure文件,不只是leiningen任務,名稱空間foo-bar必須位於名爲foo_bar.clj而不是foo-bar.clj的文件中。

+0

現在我覺得挺傻 –

+0

任何任務定義笑,唐別擔心,我也沒有注意到 –

1

這個錯誤意味着leiningen找不到任務文件。

請記住,.lein-classpath必須位於您的項目根目錄中,就在您的project.clj所在的位置。此外,該路徑相對於您的項目根目錄,因此如果您的任務位於<root>/src/tasks中,則必須將src/tasks放入您的.lein類路徑中。

+0

該路徑位於/tasks/leiningen,並且.lein-classpath位於root.project.clj位置 –

+0

可以使用相同名稱定義其他任務。請檢查以下內容:〜/ .lein,/ etc/leinrc,特別是lein('哪個lein')對於任何.lein-classpath或leinrc文件的位置。 –

+0

已更新的問題。 其中雷音=>在/ usr/local/bin目錄/雷音 的/ etc/leinrc不存在 〜/ .lein不包含.lein-類路徑,也 –