lib.aether

aether

added in 3.0

(aether)(aether config)

creates an Aether object

(aether) => (contains-in {:repositories (contains {:id “clojars”, :type “default”, :url “https://clojars.org/repo”} {:id “central”, :type “default”, :url “https://repo1.maven.org/maven2/”} :in-any-order :gaps-ok), :system org.eclipse.aether.RepositorySystem :session org.eclipse.aether.RepositorySystemSession})

artifact->dependency

added in 3.0

(artifact->dependency artifact)

converts an artifact to a dependency

(artifact->dependency ’[org.clojure/clojure “1.8.0” :scope “compile” :exclusions org.asm/compile]) ;; #dep{:artifact “org.clojure:clojure:jar:1.8.0”, ;; :exclusions “org.asm:compile:jar:”, ;; :optional false, :scope “compile”, :optional? false} => org.eclipse.aether.graph.Dependency

collect-dependencies

added in 3.0

(collect-dependencies coords)(collect-dependencies coords opts)(collect-dependencies {:keys [system session repositories]} coords opts)

getting the dependencies of a repo using pom files

(collect-dependencies ’prismatic/schema “1.1.3” {:type :coord}) => ’prismatic/schema "1.1.3"

deploy-artifact

added in 3.0

(deploy-artifact coord {:keys [artifacts repository], :as opts})(deploy-artifact {:keys [system session]} coord {:keys [artifacts repository], :as opts})

deploys artifacts to the given coordinate

(deploy-artifact ’hara/jvm.artifact “2.4.8” {:artifacts [{:file “jvm.artifact-2.4.8.jar” :extension “jar”} {:file “jvm.artifact-2.4.8.pom” :extension “pom”} {:file “jvm.artifact-2.4.8.pom.asc” :extension “pom.asc”} {:file “jvm.artifact-2.4.8.jar.asc” :extension “jar.asc”}] :repository {:id “clojars” :url “https://clojars.org/repo/” :authentication {:username “zcaudate” :password “hello”}}})

install-artifact

added in 3.0

(install-artifact coord {:keys [artifacts], :as opts})(install-artifact {:keys [system session]} coord {:keys [artifacts], :as opts})

installs artifacts to the given coordinate

(install-artifact ’im.chit/jvm.artifact “2.4.8” {:artifacts [{:file “jvm.artifact-2.4.8.jar” :extension “jar”} {:file “jvm.artifact-2.4.8.pom” :extension “pom”}]})

outdated?

added in 3.0

(outdated? coords)(outdated? coords opts)(outdated? aether coords opts)

checks if a set of artifacts are outdated

(outdated? ’binaryage/devtools "0.9.7") => (contains-in ’binaryage/devtools "0.9.7" ’=> string?)

populate-artifact

added in 3.0

(populate-artifact coord opts)

allows coordinate to fill rest of values

(populate-artifact ’midje “1.6.3” {:artifacts [{:extension “pom” :file “midje.pom”} {:extension “jar” :file “midje.jar”}]}) => {:artifacts [{:extension “pom”, :file “midje.pom”, :artifact “midje”, :group “midje”, :version “1.6.3”} {:extension “jar”, :file “midje.jar”, :artifact “midje”, :group “midje”, :version “1.6.3”}]}

pull

added in 3.0

(pull coords)(pull coords opts)(pull {:keys [loader], :as aether} coords {:keys [keep renew nodeps], :as opts})

resolves the coordinate from maven and loads dependency into classpath

(pull ’joda-time "2.9")

push

added in 3.0

(push coords)(push coords opts)(push {:keys [loader], :as aether} coords {:keys [clean simulate nodeps], :as opts})

gets rid of a dependency that is not needed

(push ’joda-time "2.9")

resolve-dependencies

added in 3.0

(resolve-dependencies coords)(resolve-dependencies coords opts)(resolve-dependencies {:keys [system session repositories]} coords opts)

resolve-versions

added in 3.0

(resolve-versions coords)(resolve-versions coords opts)(resolve-versions {:keys [system session repositories]} coords opts)

checks for given version of artifacts

(resolve-versions ’[lein-monolith “LATEST” org.clojure/clojure “LATEST”]) => (contains-in [{:group “lein-monolith”, :artifact “lein-monolith”, :version string?} {:group “org.clojure”, :artifact “clojure”, :version string?}])