【问题标题】:Why is cider finding the wrong version of cider-nrepl and how can I fix it?为什么 cider 会找到错误的 cider-nrepl 版本,我该如何解决?
【发布时间】:2014-12-06 16:07:01
【问题描述】:

我已经通过 el-get 安装了苹果酒,就在今天。当我在 emacs 中启动 cider 时,会打印以下横幅:

; CIDER 0.8.0-snapshot (Java 1.7.0_65, Clojure 1.6.0, nREPL 0.2.6)
WARNING: The following required nREPL ops are not supported: 
eldoc ns-list ns-vars undef
Please, install (or update) cider-nrepl 0.8.0-snapshot and restart CIDER
WARNING: CIDER's version (0.8.0-snapshot) does not match cider-nrepl's version (0.7.0)
user> 

我可以在 cider 中运行我的单元测试,但是很多其他的东西都不起作用,比如文档查找等。请注意,提示也在用户命名空间中,而不是在项目命名空间中。

我的~/.lein/profiles.clj

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

我看到 lein 已经下载了所需的内容(奇怪的是,还有一些):

$ find ~/.m2 -name "*nrepl*"
~/.m2/repository/cider/cider-nrepl
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.jar.sha1
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.pom
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.jar
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-20140914.152356-14.pom.sha1
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-SNAPSHOT.pom
~/.m2/repository/cider/cider-nrepl/0.8.0-SNAPSHOT/cider-nrepl-0.8.0-SNAPSHOT.jar
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.jar.sha1
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.pom.sha1
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.jar
~/.m2/repository/cider/cider-nrepl/0.7.0/cider-nrepl-0.7.0.pom
~/.m2/repository/org/clojure/tools.nrepl
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.pom.sha1
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.pom
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.jar.sha1
~/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.jar

我还看到 lein 想要同时引入 cider-nrepl 和 tools.nrepl,虽然我肯定不明白为什么:

$ lein deps :tree
warn
 [cider/cider-nrepl "0.7.0"]
   [cljs-tooling "0.1.3" :exclusions [[org.clojure/clojure]]]
   [compliment "0.1.3" :exclusions [[org.clojure/clojure]]]
   [org.clojure/java.classpath "0.2.0" :exclusions [[org.clojure/clojure]]]
   [org.clojure/tools.namespace "0.2.5" :exclusions [[org.clojure/clojure]]]
   [org.clojure/tools.trace "0.7.8" :exclusions [[org.clojure/clojure]]]
   [org.tcrawley/dynapath "0.2.3" :exclusions [[org.clojure/clojure]]]
 [clojure-complete "0.2.3" :scope "test" :exclusions [[org.clojure/clojure]]]
 [org.clojure/clojure "1.6.0"]
 [org.clojure/tools.nrepl "0.2.6" :scope "test" :exclusions [[org.clojure/clojure]]]

最后,我的 project.clj,虽然我在所有 clojure 项目中都看到了这个问题:

(defproject cider-demo "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]])

我如何让 cider 获得正确的 cider-nrepl?

【问题讨论】:

    标签: emacs clojure nrepl cider


    【解决方案1】:

    错误呈现得很清楚:

    WARNING: CIDER's version (0.8.0-snapshot) does not match cider-nrepl's version (0.7.0)
    

    您需要更改您的 profiles.clj 依赖项:

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

    或降级您的 emacs cider 版本以匹配您当前要求的 cider-nrepl 版本。

    tools.nrepl在这里不是问题,而且cideractually cannot work without tools.nrepl

    【讨论】:

    • 好的,谢谢。我现在觉得有点傻;-)
    • 确保您将“snapshot”大写
    猜你喜欢
    • 2017-11-29
    • 2014-10-13
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 2020-04-22
    • 2015-04-28
    • 1970-01-01
    • 2018-10-19
    相关资源
    最近更新 更多