Clojure - Ring uberjar 指定端口
Clojure - Ring uberjar specify port
如何生成监听给定端口的独立环 uberjar
?
开发时,我使用以下 leiningen/ring 命令启动我的应用程序,我可以在其中指定端口:
lein with-profile dev ring server-headless 9696
现在我想部署它,所以我 运行 :
lein with-profile prod ring uberjar 9696
但是我得到一个错误:
Error encountered performing task 'ring' with profile(s): 'prod'
clojure.lang.ArityException: Wrong number of args (2) passed to: uberjar/uberjar
所以我在 project.clj
中添加了 :port
:
:ring {:handler img-cli.handler/handler
:init img-cli.handler/init
:destroy img-cli.handler/destroy
:port 9696}
lein with-profile prod ring uberjar
java -jar my-jar.jar
但后来我在日志中看到:Started server on port 3000
如何使用我想要的端口生成 uberjar
?
注意: 为了以防万一,我使用的是 compojure
。
原来是我使用配置文件有问题。
仔细观察 profile documentation 产量:
To activate a profile in addition to the defaults, prepend it with a
+:
$ lein with-profile +server run
因此我不得不使用 lein with-profile +prod ring uberjar 9696
(注意 +
)。
如何生成监听给定端口的独立环 uberjar
?
开发时,我使用以下 leiningen/ring 命令启动我的应用程序,我可以在其中指定端口:
lein with-profile dev ring server-headless 9696
现在我想部署它,所以我 运行 :
lein with-profile prod ring uberjar 9696
但是我得到一个错误:
Error encountered performing task 'ring' with profile(s): 'prod'
clojure.lang.ArityException: Wrong number of args (2) passed to: uberjar/uberjar
所以我在 project.clj
中添加了 :port
:
:ring {:handler img-cli.handler/handler
:init img-cli.handler/init
:destroy img-cli.handler/destroy
:port 9696}
lein with-profile prod ring uberjar
java -jar my-jar.jar
但后来我在日志中看到:Started server on port 3000
如何使用我想要的端口生成 uberjar
?
注意: 为了以防万一,我使用的是 compojure
。
原来是我使用配置文件有问题。
仔细观察 profile documentation 产量:
To activate a profile in addition to the defaults, prepend it with a +:
$ lein with-profile +server run
因此我不得不使用 lein with-profile +prod ring uberjar 9696
(注意 +
)。