Как запустить сокет REPL в Clojure 1.8 из leiningen или boot?
в следующей ссылке http://clojure.org/reference/repl_and_main#_launching_a_socket_server
Он имеет подробную информацию о том, как запустить socket REPL form java, но так как я использую lein, так как начать с lein. Если запуск с загрузки хорош для запуска, я также могу попробовать использовать boot.
2 ответов
чтобы запустить сокет repl, вам нужно передать эту опцию в JVM
-Dclojure.server.repl="{:port 5555 :accept clojure.core.server/repl}"
в Лейнингене добавьте это в свой project.clj
.
:jvm-opts ["-Dclojure.server.repl={:port 5555 :accept clojure.core.server/repl}"] ; notice that the map is not quoted.
и при загрузке экспортируйте переменную окружения 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
задание. Начиная с boot 2.7.1, версия, включающая эту задачу, еще не выпущена.
тем временем вы можете использовать следующие команды для запуска Socket REPLs. Чтобы запустить процесс Clojure с сокетом REPL, прослушивающим порт 50505 с помощью загрузки, используйте:
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