Почему cider находит неправильную версию cider-nrepl и как это исправить?

Я установил сидр через el-get, только сегодня. Когда я запускаю сидр в emacs, печатается следующий баннер:

; 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-nrepl?


person user268344    schedule 11.10.2014    source источник


Ответы (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 здесь не проблема, и, кроме того, cider фактически не может работать без tools.nrepl< /а>.

person noisesmith    schedule 11.10.2014
comment
Хорошо, спасибо за это. Я чувствую себя немного глупо сейчас ;-) - person user268344; 11.10.2014
comment
Убедитесь, что вы используете моментальный снимок с заглавной буквы - person FellyTone84; 29.12.2014