включая другие файлы в project.clj - PullRequest
0 голосов
/ 12 октября 2011

Можно ли включить (импортировать?) Другие файлы в project.clj для проекта clojure? (в частности, leiningen).

Например, у нас есть:

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

Было бы неплохо определить больше таких вещей, как: some-key в файлах, отличных от project.clj.

1 Ответ

2 голосов
/ 12 октября 2011

Нет причин, по которым 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))

Обратите внимание, что это чтение файла, а затем оценка элементов из этого файла. Убедитесь, что вы знаете, откуда этот файл!

...