将其他文件包含到project.clj中

时间:2011-10-12 10:19:33

标签: clojure leiningen

是否可以在project.clj中包含(导入?)其他文件以用于clojure项目? (leiningen,具体而言)。

例如我们有:

(defproject sample-clojure-cloudbees "1.0.0-SNAPSHOT"
  :description "Sample clojure application - clojure 1.3 !"
  :some-key "some value")

定义更多内容会更好:在project.clj以外的文件中使用some-key。

1 个答案:

答案 0 :(得分:2)

defproject没有理由必须是顶级形式。您可以通过构建参数列表来构建对defproject的调用。唯一的问题是defproject是一个宏,因此简单的“应用”功能无济于事。

(def extra-args (read-string (slurp "project-extension.clj")))
(eval (concat '(defproject sample-clojure-cloudbees "1.0.0-SNAPSHOT")
                extra-args))

请注意,这是读取文件,然后评估该文件中的元素。确保你知道文件的来源!