Clojure项目布局和相关进口

时间:2015-05-31 18:42:20

标签: clojure

我很难开始我的第一个clojure项目。我找到了大量的教程和问题的答案,但似乎都没有回答我的问题。

我使用Leiningen创建了一个空白项目。这个例子解释了我的问题:

project.clj:

(defproject clojurenet "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.6.0"]
                  [net.mikera/core.matrix "0.34.0"]
                  [org.clojure/math.numeric-tower "0.0.1"]]
  :main ^:skip-aot clojurenet.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

src/clojurenet/core.clj:

(ns clojurenet.core)
  (:require clojurenet.hello)
  (:gen-class))

(defn -main
  [& args]
  (clojurenet.hello/helloworld)

src/clojurenet/hello.clj:

(ns clojurenet.hello)

(defn helloworld []
    (println "Hello World!"))

当我运行lein run时,收到错误消息Exception in thread "main" java.lang.ClassNotFoundException: clojurenet.hello, compiling:(clojurenet/core.clj:2:3)。我该怎么做?

我还想在核心文件中使用:refer :all语法,但我相信这个例子应该是最简单的。

我确定有一个愚蠢的简单解决方案,但我的研究并不成功。

另外,你有没有很好的教程来建立你的第一个项目?我发现有些教程已经过时,而且大部分都只介绍了如何使用REPL。

提前致谢!

1 个答案:

答案 0 :(得分:1)

clojurenet.core

中有不平衡的parantheses
(ns clojurenet.core) ;; <- remove ) to fix
  (:require clojurenet.hello)
  (:gen-class))

我建议使用像ParEdit这样的平衡编辑模式。如果您使用Sublime,则可能需要尝试this实现。