[英]How to upgrade nrepl version of leiningen?
我正在使用leiningen
和emacs
+ cider
进行clojure开发。 几天前,在我通过emacs包管理器升级cider
之后,当我运行Mx cider-connect
或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>
警告信息明确表示我必须将nrepl升级到0.2.7,但是,我不知道如何。
我通过brew
安装leiningen
,它使用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=>
leiningen简介的内容是:
{:user {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]}}
问题:如何升级leiningen使用的nrepl版本?
我刚刚遇到这个问题,我通过在较新版本的tools.nrepl
对profiles.clj
的显式依赖来解决它。 我的~/.lein/profiles.clj
:
{:repl {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]]
:dependencies [[org.clojure/tools.nrepl "0.2.7"]]}}
不知道这是最好的还是官方的方式来做到这一点。
@ matthew-moss之上的另一个注释:只有在clojure项目中运行lein repl
时才使用tools.nrepl依赖行。 例如,如果你只是从你的主目录运行lein repl
,你最终会使用编译成leiningen的tools.nrepl版本。 不知道为什么。
希望节省一些时间。
lein有一个升级命令,所以在最简单的情况下
lein upgrade
如果您使用软件包管理器安装leiningen,您可能需要执行类似下面的操作(OS X的示例,Linux发行版有他们自己的精彩软件包管理器):
brew unlink leiningen
brew update
brew install leiningen
作为已接受答案的补充:在用户profiles.clj中添加对0.2.7的依赖性几天前为我工作但突然之后我又回到0.2.6警告。 问“lein deps:tree”有这条线:
[org.clojure/tools.nrepl "0.2.7" :scope "test" :exclusions [[org.clojure/clojure]]]
这给了我一个线索,可能是lein-test-refresh插件(在同一个profiles.clj中定义)引起了一些混乱。 阅读更多关于我了解^:replace提示的配置文件 。 依赖关系中的这一行现在适用于我:
^:replace [org.clojure/tools.nrepl "0.2.7"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.