Страницы

Поиск по вопросам

четверг, 9 апреля 2020 г.

CIDER ругается на nRepl после обновления пакетов в Emacs

#package #emacs #clojure #cider

                    
    ; CIDER 0.11.0snapshot (package: 20160125.741) (Java 1.8.0_72, Clojure 1.7.0,
nREPL 0.2.10)
WARNING: CIDER requires nREPL 0.2.12 (or newer) to work properly
WARNING: The following required nREPL ops are not supported: 
  apropos classpath complete eldoc format-code format-edn info inspect-pop inspect-push
inspect-refresh macroexpand ns-list ns-vars ns-path refresh resource stacktrace toggle-trace-var
toggle-trace-ns undef
  Please, install (or update) cider-nrepl 0.11.0-SNAPSHOT and restart CIDER
WARNING: CIDER's version (0.11.0-snapshot) does not match cider-nrepl's version (not
installed). Things will break!
user> 




Как устранить конфликты в пакетах?

project.clj:

    (defproject lesson-rpg1 "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.7.0"]]
  :main ^:skip-aot lesson-rpg1.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})


lein deps :tree

D:\CODE\Clojure\lesson-rpg1>lein deps :tree
 [clojure-complete "0.2.3" :exclusions [[org.clojure/clojure]]]
 [org.clojure/clojure "1.7.0"]
 [org.clojure/tools.nrepl "0.2.10" :exclusions [[org.clojure/clojure]]]
D:\CODE\Clojure\lesson-rpg1>


lein version:

D:\CODE\Clojure\lesson-rpg1>lein version
Leiningen 2.5.2 on Java 1.8.0_72 Java HotSpot(TM) 64-Bit Server VM
D:\CODE\Clojure\lesson-rpg1>

    


Ответы

Ответ 1



Сложилась неприятная ситуация ...в самом Leiningen будет указана старая версия tools.nrepl до следующего релиза. Поэтому нужно указать версию явно в проекте или профиле (см. далее): [org.clojure/tools.nrepl "0.2.12" :exclusions [[org.clojure/clojure]]] ...и так, чтобы при этом не приклеивалась зависимость от конкретной версии Clojure. И ещё, похоже, потребуется это: [cider/cider-nrepl "0.11.0-SNAPSHOT"] Что происходит Если проект не указывает версию org.clojure/tools.nrepl явно, то используется та, что распространяется с Leiningen, в вашем случае это оказалась старая версия 0.2.10. Можно действовать любым из следующих способов: указать её явно прямо в проекте в списке зависимостей добавить в профиль по умолчанию (~/.lein/profiles.clj) это зависимость, поэтому подлежит записи под ключом :dependencies. обновить Leiningen и получить новую встроенную версию tools.nrepl на данный момент неактуально, ждём очередного релиза Leiningen. Поскольку речь о совместимости проекта с вашей собственной средой разработки (а код самого проекта не зависит от этого), первый вариант плохо подходит, а второй скорее "заплатка".

Комментариев нет:

Отправить комментарий