J'utilise leiningen
et emacs
+ cider
pour le développement de clojure. Il y a quelques jours, après avoir mis à niveau cider
via le gestionnaire de paquets emacs, je reçois le message d'avertissement suivant lorsque j'exécute M-x cider-connect
ou M-x 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>
Le message d'avertissement indique clairement que je dois mettre à niveau nrepl vers 0.2.7, cependant, je ne sais pas comment.
J'ai installé leiningen
via brew
, et il utilise 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=>
Le contenu du profil leiningen est:
{:user {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]}}
Question:: Comment mettre à jour la version de nrepl utilisée par leiningen?
Je viens d'avoir ce problème, et je l'ai résolu en ajoutant une dépendance explicite sur la nouvelle version de tools.nrepl
à profiles.clj
. Ma ~/.lein/profiles.clj
:
{:repl {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]
:dependencies [[org.clojure/tools.nrepl "0.2.7"]]}}
Je ne sais pas si c'est la meilleure façon ou la manière officielle de le faire, quoique.
une note supplémentaire au-dessus de @ matthew-moss: la ligne de dépendance tools.nrepl n'est utilisée que si vous exécutez lein repl
à partir d'un projet de clôture. si vous exécutez simplement lein repl
à partir de votre répertoire personnel, par exemple, vous finissez par utiliser la version de tools.nrepl qui est compilée dans leiningen. Je ne sais pas pourquoi.
J'espère que cela fait gagner du temps à quelqu'un.
lein a une commande de mise à niveau donc dans le cas le plus simple
lein upgrade
Si vous avez installé leiningen avec un gestionnaire de paquets, vous devrez peut-être faire quelque chose comme ci-dessous (exemple pour OS X, les distributions Linux ont leurs propres merveilleux gestionnaires de paquets):
brew unlink leiningen
brew update
brew install leiningen
En plus de la réponse acceptée: l'ajout de dépendance sur 0.2.7 dans les profils utilisateur.clj a fonctionné pour moi il y a quelques jours, mais soudainement, je suis revenu à l'avertissement 0.2.6. Demander "lein deps: tree" avait cette ligne dedans:
[org.clojure/tools.nrepl "0.2.7" :scope "test" :exclusions [[org.clojure/clojure]]]
Ce qui m'a donné un indice que probablement le plugin lein-test-refresh (défini dans le même profiles.clj) crée une certaine confusion ici. En lisant un peu plus sur profiles J'ai appris l'astuce ^: replace. Cette ligne dans les dépendances fonctionne maintenant pour moi:
^:replace [org.clojure/tools.nrepl "0.2.7"]