如果我使用leiningen创建一个新的clojure项目,它会像这样生成一个目录树:
.
|-- doc
| `-- intro.md
|-- project.clj
|-- README.md
|-- src
| `-- hello_friend
| `-- core.clj
`-- test
`-- hello_friend
`-- core_test.clj
通常,我想要的只是一个单独的clojure文件,我想使用leiningen来处理库并启动一个repl。
我有两个问题:
(1)是否有可能使leiningen与此结构一起正常工作
.
|-- project.clj
`-- hello.clj
我更喜欢。 (实际上更好的方法是将project.clj作为hello.clj文件的一部分)
(2)深层目录结构有什么好的理由吗?或者它只是来自java-land的习惯?
请注意,就我所见,这样可以正常工作:
project.clj
(defproject generic "0.0.0"
:dependencies
[[org.clojure/clojure "1.4.0"]
[hiccup "1.0.2"]]
:source-paths ["."]
:main two
:repl-options { :port 4001 :init (println "(-main) to run") }
)
one.clj
(ns one
(:use hiccup.core))
(def doom (html [:h1 "doom"]))
two.clj
(ns two
(:require one))
(defn -main []
(println one/doom))
答案 0 :(得分:5)
(1)您可以在project.clj中指定:source-paths ["."]
。有关所有可能的选项,请参阅lein sample project
(2)一旦你有2个名称空间和一个require
s,你需要“深层”结构。有关名称空间如何映射到文件的说明,请参阅here。