Distributing your app
March 1, 2022 ยท View on GitHub
Regardless of how you distribute your app, you'll probably want to use run-ui-sync to prevent the jvm from shutting down. Below is an example of -main.
(defn -main [ & args]
(let [initial-state {:foo "bar"}]
(run-ui-sync #'app-root initial-state)))
Uberjar
You can always distribute your app as an uberjar. It will require java 1.8+ to be installed on the target platform, but it will work regardless of which platform the app was developed on.
Mac OS X .app
For distrbuting to Mac OS X, appbundler does a great job of turning your uberjar into a .app.