Clojure - Ring uberjar指定端口

3

我该如何生成一个独立的ring 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

但是我在日志中看到: 在3000端口上启动服务器

我如何生成一个带有我想要的端口号的uberjar

注意:以防万一,我正在使用compojure


它对我有效,你在应用project.clj中的更改后编译了jar吗? - Paulo Bu
1
@PauloBu 啊,原来我得使用 lein with-profile +prod ring uberjar 9696(注意 + - nha
1个回答

1
结果表明,我的配置文件使用存在问题。
仔细查看配置文件文档可得:

若要激活默认设置以外的配置文件,请在前面加上+

$ lein with-profile +server run

因此我必须使用lein with-profile +prod ring uberjar 9696(注意+)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接