Add repositories handling in defproject.

This commit is contained in:
Phil Hagelberg 2011-11-19 20:00:19 -08:00
parent 8131832fdd
commit 9598ab778a

View file

@ -1,4 +1,5 @@
(ns leiningen.core.project
(:refer-clojure :exclude [read])
(:require [clojure.walk :as walk]
[clojure.java.io :as io]))
@ -11,6 +12,12 @@
identity
args))
(defn ^:internal add-repositories [{:keys [omit-default-repositories
repositories] :as project}]
(assoc project :repositories
(concat repositories (if-not omit-default-repositories
(:repositories defaults)))))
(def defaults {:source-path "src"
:compile-path "classes"
:resources-path "resources"
@ -18,13 +25,16 @@
:dev-resources-path "dev-resources"
:native-path "native"
:target-path "target"
:repositories [["central" "http://repo1.maven.org/maven2"]
;; TODO: point to releases-only before 2.0 is out
["clojars" "http://clojars.org/repo/"]]
:jar-exclusions [#"^\."]
:uberjar-exclusions [#"^META-INF/DUMMY.SF"]})
(defmacro defproject [project-name version & {:as args}]
`(let [args# (apply hash-map ~(cons 'list (unquote-project ~args)))]
(def ~'project
(merge defaults args#
(merge defaults (add-repositories args#)
{:name ~(name project-name)
:group ~(or (namespace project-name)
(name project-name))
@ -33,7 +43,7 @@
:dev-dependencies (or (:dev-dependencies args#) (:dev-deps args#))
:root ~(.getParent (io/file *file*))}))))
(defn read-project
(defn read
([file]
(try (binding [*ns* (the-ns 'leiningen.core)]
(load-file file))