在LightTable中运行leiningen Clojure项目

时间:2014-01-20 04:39:51

标签: clojure lighttable

我正在尝试使用Clojure来运行我的Leiningen项目。即使LightTable说连接在连接窗格中,它也不会执行,除非我手动调用main函数。

project.clj:

(defproject lein-test "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.5.1"]]
  :main lein-test.core)

core.clj:

(ns lein-test.core)

(defn -main [& args]
  (println "asdf"))

当我使用ctrl + shift + enter评估整个文件时,nil会看到ns而控制台中没有任何内容。如果我添加

(-main)

然后控制台显示'asdf'。命令提示符中的lein run产生预期的行为。我错过了什么?

1 个答案:

答案 0 :(得分:6)

Control + Shift + Enter评估命名空间。

评估命名空间不应运行其任何功能,除非您在顶级调用它们。在给定的代码库中,理想情况下应该只有一个在顶层调用的函数(通常是-main函数),并且应该通过在命名空间代码中调用它来设置它,但是就像你一样,通过配置。

这里的一切都按预期工作。为了方便起见,您可以在注释块或文件的临时部分中调用(-main),或直接从repl接口调用它。