emacs clojure leiningen

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 ".