Merge pull request #2220 from rymndhng/add-deploy-classifier
Infer classifier when deploying adhoc files
This commit is contained in:
commit
6e83ea2651
5 changed files with 47 additions and 3 deletions
|
@ -155,6 +155,16 @@
|
|||
"pom"
|
||||
(last (.split f "\\.")))))
|
||||
|
||||
(defn classifier
|
||||
"The classifier is be located between the version and extension name of the artifact.
|
||||
|
||||
See http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploying-with-classifiers.html "
|
||||
[version f]
|
||||
(let [pattern (re-pattern (format "%s-(.*)\\.%s" version (extension f)))
|
||||
[_ classifier-of] (re-find pattern f)]
|
||||
(when-not (empty? classifier-of)
|
||||
classifier-of)))
|
||||
|
||||
(defn- fail-on-empty-project [project]
|
||||
(when-not (:root project)
|
||||
(main/abort "Couldn't find project.clj, which is needed for deploy task")))
|
||||
|
@ -213,7 +223,8 @@ be able to depend on jars that are deployed without a pom."
|
|||
group-id (namespace identifier)
|
||||
repo (repo-for project repository)
|
||||
artifacts (for [f files]
|
||||
[[:extension (extension f)] f])]
|
||||
[[:extension (extension f)
|
||||
:classifier (classifier version f)] f])]
|
||||
(main/debug "Deploying" files "to" repo)
|
||||
(aether/deploy
|
||||
:coordinates [(symbol group-id artifact-id) version]
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
[clojure.java.io :only [file]]
|
||||
[leiningen.deploy]
|
||||
[leiningen.test.helper :only [delete-file-recursively
|
||||
tmp-dir sample-project]]))
|
||||
tmp-dir sample-project
|
||||
sample-deploy-project]]))
|
||||
|
||||
(defn- repo-path
|
||||
[relative-repo-path]
|
||||
|
@ -45,6 +46,21 @@
|
|||
repo-path repo-url)}})
|
||||
"deploy-only-repo")))
|
||||
|
||||
(deftest ^:online test-deploy-classifier
|
||||
(testing "deployment with explicit file names uploads classifiers to repo"
|
||||
(let [deploy-dir (repo-path "deploy-classifier")
|
||||
project (assoc sample-deploy-project
|
||||
:deploy-repositories
|
||||
{"snapshots" {:url (repo-url deploy-dir)}})]
|
||||
(delete-file-recursively deploy-dir :silently)
|
||||
(deploy project "snapshots"
|
||||
"deploy-me/deploy-me"
|
||||
(:version project)
|
||||
(str (:root project) "/deploy-me-0.1.0-SNAPSHOT-fat.jarr"))
|
||||
(let [dir (file deploy-dir "deploy-me/deploy-me/0.1.0-SNAPSHOT/")
|
||||
files (.list dir)]
|
||||
(is (seq (filter #(re-find #"deploy-me-0.1.0-[\d.]+-\d+-fat.jarr$" %) files)))))))
|
||||
|
||||
(deftest signing
|
||||
(testing "GPG invocation"
|
||||
(is (= (signing-args "foo.jar" nil)
|
||||
|
@ -68,3 +84,11 @@
|
|||
(is (thrown? clojure.lang.ExceptionInfo (deploy nil))))
|
||||
(testing "Fail if project data is missing"
|
||||
(is (thrown? clojure.lang.ExceptionInfo (deploy nil "snapshots")))))
|
||||
|
||||
(deftest classifiying
|
||||
(are [expected version file] (= expected (classifier version file))
|
||||
"fat" "1.2.3" "some-project-1.2.3-fat.jar"
|
||||
"fat" "1.2.3-alpha6" "some-project-1.2.3-alpha6-fat.jar"
|
||||
"fat" "1.2.3-SNAPSHOT" "some-project-1.2.3-SNAPSHOT-fat.jar"
|
||||
nil "1.2.3" "some-project-1.2.3-.jar"
|
||||
nil "1.2.3" "some-project-1.2.3.jar"))
|
||||
|
|
|
@ -50,6 +50,8 @@
|
|||
|
||||
(def sample-fixture-error-project (read-test-project "sample-fixture-error"))
|
||||
|
||||
(def sample-deploy-project (read-test-project "sample-deploy"))
|
||||
|
||||
(def tricky-name-project (read-test-project "tricky-name"))
|
||||
|
||||
(def native-project (read-test-project "native"))
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
I am a teapot!
|
6
test_projects/sample-deploy/project.clj
Normal file
6
test_projects/sample-deploy/project.clj
Normal file
|
@ -0,0 +1,6 @@
|
|||
(defproject deploy-me "0.1.0-SNAPSHOT"
|
||||
:description "FIXME: write description"
|
||||
:url "http://example.com/FIXME"
|
||||
:license {:name "Eclipse Public License"
|
||||
:url "http://www.eclipse.org/legal/epl-v10.html"}
|
||||
:dependencies [[org.clojure/clojure "1.8.0"]])
|
Loading…
Reference in a new issue