Clojure 将其他文件包括到project.clj中

Clojure 将其他文件包括到project.clj中,clojure,leiningen,Clojure,Leiningen,是否可以将其他文件包括(导入?)到clojure项目的project.clj中?(特别是莱宁根) 我们有: (defproject sample-clojure-cloudbees "1.0.0-SNAPSHOT" :description "Sample clojure application - clojure 1.3 !" :some-key "some value") 最好定义更多的东西,比如:project.clj以外的文件中的一些键 没有理由说defproject必须是顶级

是否可以将其他文件包括(导入?)到clojure项目的project.clj中?(特别是莱宁根)

我们有:

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

最好定义更多的东西,比如:project.clj以外的文件中的一些键

没有理由说defproject必须是顶级表单。您可以通过建立参数列表来构造对defproject的调用。唯一需要注意的是defproject是一个宏,因此简单的“apply”函数没有帮助

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

请注意,这是读取一个文件,然后计算该文件中的元素。确保您知道文件的来源

迈克尔,你能澄清一下你的意图吗?您是否只想包括其他应该编译的项目?为此,您可以指定依赖项,这些依赖项可以有自己的project.clj文件。(然后查看'modules'目录下的其他部分)。Paul,请参阅我对您的其他问题的回答-只需在外部文件中包含一些配置条目-在本例中,我将添加到.gitignore中的机密-但是project.clj将清楚地“记录”您需要通过包含此文件来提供机密。例如,我对play framework配置做了类似的操作(如果这意味着什么的话!)。当然,在这种情况下,外部文件是本地和私有设置。在这种情况下,我仍然会被宏绊倒,谢谢你指出这一点!听起来不错——我想知道其他人是否认为这足够有益于莱宁根本身?