emacs - ¿Cómo actualizar la versión nrepl de leiningen?
clojure (4)
Como una adición a la respuesta aceptada: agregar dependencia en 0.2.7 en los perfiles de usuario.clj funcionó para mí hace unos días, pero de repente volví a la advertencia 0.2.6. Preguntarle a "lein deps: tree" tenía esta línea:
[org.clojure/tools.nrepl "0.2.7" :scope "test" :exclusions [[org.clojure/clojure]]]
Lo que me dio una pista de que probablemente el complemento lein-test-refresh (definido en el mismo profiles.clj) está causando cierta confusión aquí. Leyendo un poco más acerca de los perfiles que aprendí sobre ^: reemplazar la sugerencia. Esta línea en dependencias funciona ahora para mí:
^:replace [org.clojure/tools.nrepl "0.2.7"]
Estoy usando leiningen
y emacs
+ cider
para el desarrollo de clojure. Hace unos días, después de actualizar cider
través del gestor de paquetes de emacs, obtengo el siguiente mensaje de advertencia cuando ejecuto Mx cider-connect
o Mx cider-jack-in
.
; CIDER 0.9.0snapshot (package: 20150222.137) (Java 1.8.0_31, Clojure 1.6.0, nREPL 0.2.6)
WARNING: CIDER requires nREPL 0.2.7 to work properly
user>
El mensaje de advertencia dice claramente que tengo que actualizar nrepl a 0.2.7, sin embargo, no sé cómo.
Instalé leiningen
vía brew
, y usa nrepl 0.2.6
.
$ lein repl
nREPL server started on port 53218 on host 127.0.0.1 - nrepl://127.0.0.1:53218
REPL-y 0.3.5, nREPL 0.2.6
Clojure 1.6.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_31-b13
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
Results: Stored in vars *1, *2, *3, an exception in *e
user=>
El contenido del perfil de leiningen es:
{:user {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]}}
Pregunta: ¿Cómo actualizar la versión de nrepl utilizada por leiningen?
una nota adicional sobre @ matthew-moss: la línea de dependencia tools.nrepl solo se usa si ejecuta lein repl
desde dentro de un proyecto de clojure. si simplemente ejecuta lein repl
desde su directorio de inicio, por ejemplo, termina usando la versión de tools.nrepl compilada en leiningen. No tengo idea por qué.
Espero que le ahorre tiempo a alguien.
Lein tiene un comando de actualización por lo que en el caso más simple
lein upgrade
En caso de que instale leiningen con un administrador de paquetes, es posible que deba hacer algo como lo siguiente (ejemplo para OS X, las distribuciones de Linux tienen sus propios administradores de paquetes maravillosos):
brew unlink leiningen
brew update
brew install leiningen
Acabo de tener este problema, y lo resolví agregando una dependencia explícita en la versión más nueva de tools.nrepl
a profiles.clj
. Mi ~/.lein/profiles.clj
:
{:repl {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]
:dependencies [[org.clojure/tools.nrepl "0.2.7"]]}}
No tengo idea de si esa es la mejor manera u oficial de hacerlo, aunque ".