是否可以在 clojure 项目的 project.clj 中包含(导入?)其他文件?(特别是莱宁根)。
例如我们有:
(defproject sample-clojure-cloudbees "1.0.0-SNAPSHOT"
:description "Sample clojure application - clojure 1.3 !"
:some-key "some value")
最好在 project.clj 以外的文件中定义更多内容,例如 :some-key。
没有理由 defproject 必须是顶级表单。您可以通过构建参数列表来构造对 defproject 的调用。唯一的问题是 defproject 是一个宏,所以直接的“应用”函数无济于事。
(def extra-args (read-string (slurp "project-extension.clj")))
(eval (concat '(defproject sample-clojure-cloudbees "1.0.0-SNAPSHOT")
extra-args))
请注意,这是读取文件,然后评估该文件中的元素。确保您知道文件的来源!