diff --git a/pom.xml b/pom.xml index 8e16dde..f96687e 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.code54.mojo buildversion-plugin - 1.0.3 + 1.0.4 maven-plugin buildversion-plugin diff --git a/src/main/clojure/buildversion_plugin/mojo.clj b/src/main/clojure/buildversion_plugin/mojo.clj index d6c079a..0d8c923 100644 --- a/src/main/clojure/buildversion_plugin/mojo.clj +++ b/src/main/clojure/buildversion_plugin/mojo.clj @@ -32,27 +32,36 @@ :typename "java.lang.String"} git-cmd {:alias "gitCmd" :default "git" - :typename "java.lang.String"} ] + :typename "java.lang.String"} + fail-on-error {:alias "failOnError" + :default true + :typename "java.lang.Boolean"} ] ;; Goal execution - (let [log-fn #(.debug log/*plexus-log* (str "[buildversion-plugin] " %)) - inferred-props (git/infer-project-version base-dir - {:tstamp-format tstamp-format - :git-cmd (or git-cmd "git") - :debug-fn log-fn } ) - final-props (if custom-script - (merge inferred-props - (eval-custom-script inferred-props custom-script)) - inferred-props) - maven-project-props (.getProperties project)] - - (log-fn "Setting properties: ") - (doseq [[prop value] final-props] - (log-fn (str (name prop) ": " value)) - (.put maven-project-props (name prop) value)))) - - - ;; injecting project version does not work well :-( - ; (if-let [ver (:build-tag final-props)] - ; (.setVersion project)) + (try + (let [log-fn #(.debug log/*plexus-log* (str "[buildversion-plugin] " %)) + + inferred-props (git/infer-project-version base-dir + {:tstamp-format tstamp-format + :git-cmd (or git-cmd "git") + :debug-fn log-fn} ) + final-props (if custom-script + (merge inferred-props + (eval-custom-script inferred-props custom-script)) + inferred-props) + maven-project-props (.getProperties project)] + + (log-fn "Setting properties: ") + (doseq [[prop value] final-props] + (log-fn (str (name prop) ": " value)) + (.put maven-project-props (name prop) value))) + + (catch Throwable e + (if (false? fail-on-error) + (println "[WARNING]" (.getMessage e) ": failOnError parameter false : exit plugin without error") + (throw e))))) + + ;; injecting project version does not work well :-( + ; (if-let [ver (:build-tag final-props)] + ; (.setVersion project))