             [clojure.tools.namespace.file :refer [read-file-ns-decl]]
             [clojure.pprint :as pp]
             [leiningen.core.main :refer [info debug]])
-  (:import [java.util.zip ZipFile]))
+  (:import [java.util.zip ZipFile]
+           [java.util UUID]))
 
 (defn- zip-target-file
   [target-dir entry-path]

      (->> trans-deps
           keys
           (remove #(= (first %) (symbol "org.clojure/clojure")))
           (map (partial unzip&update-artifact! srcdeps (fs/file src-path (str/join "/" ["deps" art-name-cleaned art-version])) trans-deps))
           doall))))

(defn source-deps

  (let [source-dependencies (filter source-dep? dependencies)
        srcdeps-relative (str (apply str (drop (inc (count root)) target-path)) "/srcdeps")
        dep-hierarchy (->> (aether/resolve-dependencies :coordinates source-dependencies :repositories repositories)
                           (aether/dependency-hierarchy source-dependencies))
        uuid (str (UUID/randomUUID))]
    (doall (map (partial unzip&update-artifact! uuid srcdeps-relative (fs/file target-path "srcdeps") dep-hierarchy) (keys dep-hierarchy)))))
