build.clj 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. (ns build
  2. (:require [clojure.string :as string]
  3. [clojure.tools.build.api :as b]))
  4. (def lib 'io.github.kit-clj/te-bench)
  5. (def main-cls (string/join "." (filter some? [(namespace lib) (name lib) "core"])))
  6. (def version (format "0.0.1-SNAPSHOT"))
  7. (def target-dir "target")
  8. (def class-dir (str target-dir "/" "classes"))
  9. (def uber-file (format "%s/%s-standalone.jar" target-dir (name lib)))
  10. (def basis (b/create-basis {:project "deps.edn"}))
  11. (defn clean
  12. "Delete the build target directory"
  13. [_]
  14. (println (str "Cleaning " target-dir))
  15. (b/delete {:path target-dir}))
  16. (defn prep [_]
  17. (println "Writing Pom...")
  18. (b/write-pom {:class-dir class-dir
  19. :lib lib
  20. :version version
  21. :basis basis
  22. :src-dirs ["src/clj"]})
  23. (b/copy-dir {:src-dirs ["src/clj" "resources" "env/prod/resources" "env/prod/clj"]
  24. :target-dir class-dir}))
  25. (defn uber [_]
  26. (println "Compiling Clojure...")
  27. (b/compile-clj {:basis basis
  28. :src-dirs ["src/clj" "resources" "env/prod/resources" "env/prod/clj"]
  29. :class-dir class-dir})
  30. (println "Making uberjar...")
  31. (b/uber {:class-dir class-dir
  32. :uber-file uber-file
  33. :main main-cls
  34. :basis basis}))
  35. (defn all [_]
  36. (do (clean nil) (prep nil) (uber nil)))