Guest User

Untitled

a guest
May 20th, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. (defn deps
  2. "Download and install all :dependencies listed in project.clj into the lib/
  3. directory. With an argument it will skip development dependencies. Dependencies
  4. should be a vector of entries specifying group, name, and version like the
  5. following:
  6. [org.clojure/clojure-contrib \"1.0-SNAPSHOT\"]
  7.  
  8. It is also possible to exclude specific indirect dependencies of a direct
  9. dependency using the optional :exclusions keyword and vector of entries.
  10. A project that depends on log4j could exclude unnecessary indirect
  11. dependencies with the following:
  12. [log4j \"1.2.15\" :exclusions [javax.mail/mail
  13. javax.jms/jms
  14. com.sun.jdmk/jmxtools
  15. com.sun.jmx/jmxri]]"
  16. ;; TODO: get deps from ~/.m2 while offline
  17. ([project skip-dev]
  18. (let [deps-task (DependenciesTask.)]
  19. (.setBasedir lancet/ant-project (:root project))
  20. (.setFilesetId deps-task "dependency.fileset")
  21. (.setProject deps-task lancet/ant-project)
  22. (.setPathId deps-task (:name project))
  23. (doseq [r (map make-repository (concat default-repos
  24. (:repositories project)))]
  25. (.addConfiguredRemoteRepository deps-task r))
  26. (doseq [dep (:dependencies project)]
  27. (.addDependency deps-task (make-dependency dep)))
  28. (when-not skip-dev
  29. (doseq [dep (:dev-dependencies project)]
  30. (.addDependency deps-task (make-dependency dep))))
  31. (.execute deps-task)
  32. (.mkdirs (file (:library-path project)))
  33. (lancet/copy {:todir (:library-path project) :flatten "on"}
  34. (.getReference lancet/ant-project
  35. (.getFilesetId deps-task)))))
  36. ([project] (deps project false)))
Add Comment
Please, Sign In to add comment