Add global :exclusions

This commit is contained in:
Joe Gallo 2011-03-11 12:25:28 -05:00
parent 90aad00732
commit ac9f135c89
3 changed files with 28 additions and 21 deletions

View file

@ -40,6 +40,10 @@
;; development. Projects that depend on this project will not pull
;; in its dev-dependencies, and they won't be included in the uberjar.
:dev-dependencies [[org.clojure/swank-clojure "1.2.1"]]
;; Global exclusions are applied across the board, as an alternative
;; to duplication for multiple depedencies with the same excluded libraries.
:exclusions [org.apache.poi/poi
org.apache.poi/poi-ooxml]
;; Only re-fetch dependencies when they change in project.clj or
;; when :library-path directory is empty.
:checksum-deps true

View file

@ -78,7 +78,7 @@
(doseq [repo (make-repositories project)]
(.addConfiguredRemoteRepository deps-task repo))
(doseq [dep (project deps-set)]
(.addDependency deps-task (make-dependency dep)))
(.addDependency deps-task (make-dependency project dep)))
deps-task))
(defn use-dev-deps? [project skip-dev]

View file

@ -145,26 +145,29 @@ the :classifier key (if present) is the classifier on the
dependency (as a string). The value for the :exclusions key, if
present, is a seq of symbols, identifying group ids and artifact ids
to exclude from transitive dependencies."
[dependency]
(when-not (vector? dependency)
(abort "Dependencies must be specified as vector:" dependency))
(let [[dep version & extras] dependency
extras-map (apply hash-map extras)
exclusions (:exclusions extras-map)
classifier (:classifier extras-map)
type (:type extras-map)
es (map make-exclusion exclusions)]
(doto (Dependency.)
;; Allow org.clojure group to be omitted from clojure/contrib deps.
(.setGroupId (if (and (nil? (namespace dep))
(re-find #"^clojure(-contrib)?$" (name dep)))
"org.clojure"
(or (namespace dep) (name dep))))
(.setArtifactId (name dep))
(.setVersion version)
(.setClassifier classifier)
(.setType (or type "jar"))
(.setExclusions es))))
([dependency]
(make-dependency {} dependency))
([project dependency]
(when-not (vector? dependency)
(abort "Dependencies must be specified as vector:" dependency))
(let [[dep version & extras] dependency
extras-map (apply hash-map extras)
exclusions (:exclusions extras-map)
classifier (:classifier extras-map)
type (:type extras-map)
es (map make-exclusion (concat exclusions
(:exclusions project)))]
(doto (Dependency.)
;; Allow org.clojure group to be omitted from clojure/contrib deps.
(.setGroupId (if (and (nil? (namespace dep))
(re-find #"^clojure(-contrib)?$" (name dep)))
"org.clojure"
(or (namespace dep) (name dep))))
(.setArtifactId (name dep))
(.setVersion version)
(.setClassifier classifier)
(.setType (or type "jar"))
(.setExclusions es)))))
(defn make-repository [[id settings]]
(let [repo (Repository.)]