Reduce output for dependency resolution

Showing every failed repo lookup is bad for users.
They see the failure and get confused.

Hook up a custom listener that has the following behavior:

1. success -> print out artifact name, size, and repository name
2. failure -> ignore unless it is the last repo, then print out failure
   message with artifact name.

Fixes #610.
This commit is contained in:
Nelson Morris 2012-09-05 14:26:49 -05:00
parent d371e4d914
commit d254dae544
4 changed files with 28 additions and 8 deletions

View file

@ -118,7 +118,27 @@
(map (partial update-policies update checksum)))
:coordinates (get project dependencies-key)
:mirrors mirrors
:transfer-listener :stdout
:transfer-listener
(bound-fn [e]
(let [{:keys [type resource error]} e]
(let [{:keys [repository name size]} resource]
(case type
:started
(println "Retrieving"
name
(if (neg? size)
""
(format "(%sk)"
(Math/round (double (max 1 (/ size 1024))))))
"from"
(or (first (first (filter #(= repository (:url (second %)))
repositories)))
repository))
:failed
(if (and (= repository (:url (second (last repositories))))
error)
(println "Failed to find" name))
nil))))
:proxy (get-proxy-settings))
(catch DependencyResolutionException e
(binding [*out* *err*]

View file

@ -39,7 +39,7 @@
:compile-path "target/classes"
:target-path "target"
:prep-tasks ["javac" "compile"]
:repositories [["central" {:url "http://repo1.maven.org/maven2"}]
:repositories [["central" {:url "http://repo1.maven.org/maven2/"}]
;; TODO: point to releases-only before 2.0 is out
["clojars" {:url "https://clojars.org/repo/"}]]
:deploy-repositories [["clojars" {:url "https://clojars.org/repo/"

View file

@ -35,7 +35,7 @@
[stencil "0.2.0"]],
:twelve 12 ; testing unquote
:repositories [["central" {:url "http://repo1.maven.org/maven2"}]
:repositories [["central" {:url "http://repo1.maven.org/maven2/"}]
["clojars" {:url "https://clojars.org/repo/"}]]})
(deftest test-read-project
@ -160,7 +160,7 @@
(deftest test-merge-anon-profiles
(let [expected-result {:A 1 :C 3 :profiles {:a {:A 1}
:b {:B 2}}
:repositories [["central" {:url "http://repo1.maven.org/maven2"}]
:repositories [["central" {:url "http://repo1.maven.org/maven2/"}]
["clojars" {:url "https://clojars.org/repo/"}]]
:dependencies [], :compile-path "classes"}]
(is (= expected-result
@ -169,7 +169,7 @@
(deftest test-composite-profiles
(let [expected-result {:A '(2 3 1), :B 2, :C 3,
:repositories [["central" {:url "http://repo1.maven.org/maven2"}]
:repositories [["central" {:url "http://repo1.maven.org/maven2/"}]
["clojars" {:url "https://clojars.org/repo/"}]]
:dependencies [], :compile-path "classes"}]
(is (= expected-result
@ -182,7 +182,7 @@
(deftest test-override-default
(let [expected-result {:A 1, :B 2, :C 3
:repositories [["central" {:url "http://repo1.maven.org/maven2"}]
:repositories [["central" {:url "http://repo1.maven.org/maven2/"}]
["clojars" {:url "https://clojars.org/repo/"}]]
:dependencies [], :compile-path "classes"}]
(is (= expected-result
@ -197,7 +197,7 @@
(let [expected-result {:A 1 :C 3 :profiles {:a {:A 1}
:b {:B 2}
:c {:C 3}}
:repositories [["central" {:url "http://repo1.maven.org/maven2"}]
:repositories [["central" {:url "http://repo1.maven.org/maven2/"}]
["clojars" {:url "https://clojars.org/repo/"}]]
:dependencies [], :compile-path "classes"}]
(is (= expected-result

View file

@ -68,7 +68,7 @@
(map #(first-in % [:repository :id])
(deep-content xml [:project :repositories])))
"repositories are named")
(is (= ["http://repo1.maven.org/maven2" "https://clojars.org/repo/"
(is (= ["http://repo1.maven.org/maven2/" "https://clojars.org/repo/"
"http://example.com/repo"]
(map #(first-in % [:repository :url])
(deep-content xml [:project :repositories])))