Allow custom :repositories to be specified in project.clj.
Add build.clojure.org as a default repo.
This commit is contained in:
parent
fc931d8747
commit
12f0b98abc
2 changed files with 16 additions and 6 deletions
|
@ -2,9 +2,17 @@
|
|||
(:require [lancet])
|
||||
(:use [clojure.contrib.java-utils :only [file]])
|
||||
(:import [org.apache.maven.model Dependency]
|
||||
[org.apache.maven.artifact.ant DependenciesTask]
|
||||
[org.apache.maven.artifact.ant DependenciesTask RemoteRepository]
|
||||
[org.apache.tools.ant.util FlatFileNameMapper]))
|
||||
|
||||
(defn make-repository [[id url]]
|
||||
(doto (RemoteRepository.)
|
||||
(.setId id)
|
||||
(.setUrl url)))
|
||||
|
||||
(def default-repos {"central" "http://repo1.maven.org/maven/"
|
||||
"clojure-snapshots" "http://build.clojure.org/snapshots"})
|
||||
|
||||
(defn- make-dependency [[dep version]]
|
||||
(doto (Dependency.)
|
||||
(.setGroupId (or (namespace dep) (name dep)))
|
||||
|
@ -12,7 +20,6 @@
|
|||
(.setVersion version)))
|
||||
|
||||
;; TODO: development dependencies
|
||||
;; TODO: add build.clojure.org as a default repo
|
||||
(defn deps
|
||||
"Install dependencies in lib/"
|
||||
[project & args]
|
||||
|
@ -21,6 +28,9 @@
|
|||
(.setFilesetId deps-task "dependency.fileset")
|
||||
(.setProject deps-task lancet/ant-project)
|
||||
(.setPathId deps-task (:name project))
|
||||
(doseq [r (map make-repository (concat default-repos
|
||||
(:repositories project)))]
|
||||
(.addConfiguredRemoteRepository deps-task r))
|
||||
(doseq [dep (:dependencies project)]
|
||||
(.addDependency deps-task (make-dependency dep)))
|
||||
(.execute deps-task)
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
(deftest test-deps
|
||||
(delete-file-recursively (file (:root test-project) "lib") true)
|
||||
(deps test-project)
|
||||
(is (subset? #{"jdom-1.0.jar" "tagsoup-1.2.jar"
|
||||
"clojure-1.1.0-alpha-SNAPSHOT.jar" "rome-0.9.jar"}
|
||||
(set (map #(.getName %)
|
||||
(.listFiles (file (:root test-project) "lib")))))))
|
||||
(let [jars (set (map #(.getName %)
|
||||
(.listFiles (file (:root test-project) "lib"))))]
|
||||
(is (some #(re-find #"clojure-1.1.0-alpha" %) jars))
|
||||
(is (subset? #{"jdom-1.0.jar" "tagsoup-1.2.jar" "rome-0.9.jar"} jars))))
|
||||
|
|
Loading…
Reference in a new issue