Comment mettre à niveau la version nrpl de leiningen?

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 nrpl à 0.2.7, cependant, je ne sais pas comment.

J'ai installé leiningen par 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 de leiningen est:

{:user {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]}}

Question:: Comment mise à niveau de la version de nrpl utilisée par leiningen?

43
demandé sur ntalbs 2015-02-24 08:25:19

4 réponses

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. Mon ~/.lein/profiles.clj:

{:repl {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]
        :dependencies [[org.clojure/tools.nrepl "0.2.7"]]}}

Aucune idée si c'est la meilleure façon ou officielle de le faire, tho'.

55
répondu rntz 2016-02-13 08:34:35

Une note supplémentaire au - dessus de @matthew-moss: les outils.la ligne de dépendance nrepl n'est utilisée que si vous exécutez lein repl à partir d'un projet clojure. si vous exécutez simplement lein repl à partir de votre répertoire personnel, par exemple, vous finissez par utiliser la version d'outils.nrepl qui est compilé dans leiningen. Aucune idée de pourquoi.

J'espère que ça fait gagner du temps à quelqu'un.

8
répondu Dominic LoBue 2015-05-09 11:24:49

Lein a une commande de mise à niveau donc dans le cas le plus simple

lein upgrade

Dans le cas où vous avez installé leiningen avec un gestionnaire de paquets, vous devrez peut-être faire quelque chose comme ce qui suit (exemple pour OS X, les distributions linux ont leurs propres gestionnaires de paquets merveilleux):

brew unlink leiningen
brew update
brew install leiningen
5
répondu The Unfun Cat 2015-09-30 19:18:47

En complément de la réponse acceptée: ajout d'une dépendance à 0.2.7 dans les profils utilisateur.clj a travaillé 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 les mêmes profils.clj) provoque une certaine confusion ici. En lisant un peu plus sur profils j'ai appris à propos de l'indice ^:replace. Cette ligne dans les dépendances fonctionne maintenant pour moi:

^:replace [org.clojure/tools.nrepl "0.2.7"]
3
répondu peterfoldi 2015-04-06 17:32:42