2016-01-21 9 views
7

W poniższym linku http://clojure.org/reference/repl_and_main#_launching_a_socket_serverJak mogę uruchomić REPL z gniazda w Clojure 1.8 z leiningen lub boot?

stało Szczegółowe informacje o tym, jak rozpocząć gniazdo formularz REPL java, ale ponieważ używam Lein, tak jak rozpocząć od Lein. Jeśli start z bootowania jest dobry do uruchomienia, mógłbym również spróbować użyć bootowania.

+0

Leiningen automatycznie uruchamia repl na gnieździe. Spójrz na baner, który drukuje przy starcie, aby zobaczyć, który z nich wybrał. – dsm

+0

@dsm autor mówi o nowym REPL gniazda w Clojure 1.8, a nie REPL Leiningena. –

Odpowiedz

12

Aby rozpocząć repl gniazda, trzeba przekazać tę opcję JVM

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

W Leiningen, dodać do swojej project.clj.

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

aw Boot wyeksportować zmienną środowiskową BOOT_JVM_OPTIONS

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

Gdy REPL jest uruchomiona, można uruchomić telnet z innego terminala do łączenia się z REPL gniazda. REPLception!

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

jest jasne dla bootowania, ponieważ "export" jest poleceniem linuxa i wiem, jak go używać. ale dla lein, użyjesz ": jvm-opts ...", czy powinniśmy umieścić? umieść go w project.clj? –

+0

Tak, zaktualizowałem. –

1

boot ma nadchodzący socket-server task. Począwszy od wersji 2.7.1, wersja, która zawiera to zadanie, nie została jeszcze wydana.

W międzyczasie możesz użyć następujących poleceń, aby uruchomić REPL-y Socket. Aby uruchomić proces Clojure z gniazdem REPL nasłuchuje na porcie 50505 przy użyciu bagażnik, należy:

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

Korzystanie Leiningen:

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

Korzystanie z bólu Clojure słoika:

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 
Powiązane problemy