and just returns a reference to it, so it can be easily stopped by `(.stop server)`
### "Uberjar is the :main"
In order for a standalone jar to run, it needs an entry point. This sample app [has one](https://github.com/tolitius/mount/blob/uberjar/test/app/app.clj#L16):
```clojure
;; example of an app entry point
(defn -main [& args]
(mount/start))
```
And some usual suspects from `project.clj`:
```clojure
;; "test" is in sources here to just "demo" the uberjar without poluting mount "src"
16:44:16.625 [nREPL-worker-2] INFO mount - <<stopping..nrepl
16:44:16.626 [nREPL-worker-2] INFO mount - <<stopping..nyse-app
16:44:16.711 [nREPL-worker-2] INFO mount - <<stopping..conn
16:44:16.713 [nREPL-worker-2] INFO mount - <<stopping..app-config
16:44:16.747 [nREPL-worker-2] INFO mount - >> starting.. app-config
16:44:16.748 [nREPL-worker-2] INFO mount - >> starting.. conn
16:44:16.773 [nREPL-worker-2] INFO mount - >> starting.. nyse-app
16:44:16.777 [nREPL-worker-2] INFO o.e.jetty.server.AbstractConnector - Started SelectChannelConnector@0.0.0.0:54476
16:44:16.778 [nREPL-worker-2] INFO mount - >> starting.. nrepl
```
Notice the Jetty port difference between reloads: `53600` vs. `54476`. This is done on purpose via [config](https://github.com/tolitius/mount/blob/uberjar/test/resources/config.edn#L4):
```clojure
:www {:port 0} ;; Jetty will randomly assign the available port (this is good for dev reloadability)
```
This of course can be solidified for different env deployments. For example I like `4242` :)