♻️ Refactor backend bundle build process.

Now the final artifact is a single, compiled uberjar.
It considerably improves startup speed.
This commit is contained in:
Andrey Antukh 2022-01-11 16:30:22 +01:00 committed by Alonso Torres
parent 9488a9a1ad
commit c48da3d316
7 changed files with 59 additions and 76 deletions

37
backend/build.clj Normal file
View file

@ -0,0 +1,37 @@
(ns build
(:refer-clojure :exclude [compile])
(:require
[clojure.tools.build.api :as b]
[clojure.java.io]))
(def class-dir "target/classes")
(def basis (b/create-basis {:project "deps.edn"}))
(def jar-file "target/penpot.jar")
(defn clean [_]
(b/delete {:path "target"}))
(defn jar [_]
(b/copy-dir
{:src-dirs ["src" "resources"]
:target-dir class-dir})
(b/compile-clj
{:basis basis
:src-dirs ["src"]
:class-dir class-dir})
(b/uber
{:class-dir class-dir
:uber-file jar-file
:main 'clojure.main
:basis basis}))
(defn compile [_]
(b/javac
{:src-dirs ["dev/java"]
:class-dir class-dir
:basis basis
:exclude [#"com.google.*" #"goog.*"]
:javac-opts ["-source" "11" "-target" "11"]}))