簡體   English   中英

如何從leiningen或boot啟動Clojure 1.8中的套接字REPL?

[英]How can I start a socket REPL in Clojure 1.8 from leiningen or boot?

在以下鏈接http://clojure.org/reference/repl_and_main#_launching_a_socket_server

它有關於如何啟動套接字REPL表單java的詳細信息,但由於我使用的是lein,所以如何從lein開始。 如果從啟動開始運行良好,我也可以嘗試使用啟動。

要啟動套接字repl,您需要將此選項傳遞給JVM

-Dclojure.server.repl="{:port 5555 :accept clojure.core.server/repl}"

在Leiningen中,將其添加到project.clj

:jvm-opts ["-Dclojure.server.repl={:port 5555 :accept clojure.core.server/repl}"] ; notice that the map is not quoted.

在Boot中,導出環境變量BOOT_JVM_OPTIONS

export BOOT_JVM_OPTIONS='-Dclojure.server.repl="{:port 5555 :accept clojure.core.server/repl}"'

一旦你的REPL運行,你可以從另一個終端運行telnet連接到套接字REPL。 REPLception!

$ telnet 127.0.0.1 5555
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
user=> (+ 1 1)
2
user=>

boot有即將到來的socket-server任務 從引導2.7.1開始,包含此任務的版本尚未發布。

在此期間,您可以使用以下命令啟動套接字REPL。 要使用引導在端口50505上偵聽Socket REPL來啟動Clojure進程,請使用:

boot -i "(do (require 'clojure.core.server) (clojure.core.server/start-server {:port 50505 :name :repl :accept 'clojure.core.server/repl}))" wait

使用Leiningen:

JVM_OPTS='-Dclojure.server.myrepl={:port,50505,:accept,clojure.core.server/repl}' lein repl

使用痛苦的Clojure罐子:

java -Dclojure.server.myrepl="{:port 50505 :accept clojure.core.server/repl}" -jar ~/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM