如何升级leiningen的nrepl版本?
How to upgrade nrepl version of leiningen?
我正在使用 leiningen
和 emacs
+ cider
进行 clojure 开发。几天前,在我通过 emacs 包管理器升级 cider
后,当我 运行 M-x cider-connect
或 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>
警告信息明确说我必须将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"]]}}
不知道这是最好的还是正式的方式,不过。
作为对已接受答案的补充:几天前在用户 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 中定义)在这里引起了一些混乱。阅读更多关于 profiles 的内容,我了解了 ^:replace 提示。依赖项中的这一行现在对我有用:
^:replace [org.clojure/tools.nrepl "0.2.7"]
@matthew-moss 的附加说明:tools.nrepl 依赖行仅在您从 clojure 项目中 运行 lein repl
时使用。例如,如果您只是从您的主目录 运行 lein repl
,您最终会使用编译到 leiningen 中的 tools.nrepl 版本。不知道为什么。
希望能节省一些时间。
lein 有一个升级命令所以在最简单的情况下
lein upgrade
如果您使用包管理器安装了 leiningen,您可能需要执行如下操作(OS X 的示例,linux 发行版有自己出色的包管理器):
brew unlink leiningen
brew update
brew install leiningen
我正在使用 leiningen
和 emacs
+ cider
进行 clojure 开发。几天前,在我通过 emacs 包管理器升级 cider
后,当我 运行 M-x cider-connect
或 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>
警告信息明确说我必须将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"]]}}
不知道这是最好的还是正式的方式,不过。
作为对已接受答案的补充:几天前在用户 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 中定义)在这里引起了一些混乱。阅读更多关于 profiles 的内容,我了解了 ^:replace 提示。依赖项中的这一行现在对我有用:
^:replace [org.clojure/tools.nrepl "0.2.7"]
@matthew-moss 的附加说明:tools.nrepl 依赖行仅在您从 clojure 项目中 运行 lein repl
时使用。例如,如果您只是从您的主目录 运行 lein repl
,您最终会使用编译到 leiningen 中的 tools.nrepl 版本。不知道为什么。
希望能节省一些时间。
lein 有一个升级命令所以在最简单的情况下
lein upgrade
如果您使用包管理器安装了 leiningen,您可能需要执行如下操作(OS X 的示例,linux 发行版有自己出色的包管理器):
brew unlink leiningen
brew update
brew install leiningen