Исключение при запуске lein интерактивный

Проект, над которым я работал, внезапно начал выдавать исключения при использовании интерактива leiningen. Запуск "lein test" в порядке, мои тесты выполняются и проходят успешно. Исключение возникает только при использовании интерактивного:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at jline.ConsoleRunner.main(ConsoleRunner.java:69)
Caused by: java.lang.IllegalStateException: Can't dynamically bind non-dynamic var: leiningen.compile/eval-in-project
    at clojure.lang.Var.pushThreadBindings(Var.java:339)
    at clojure.core$push_thread_bindings.invoke(core.clj:1716)
    at leiningen.interactive$interactive.invoke(interactive.clj:75)
    at clojure.lang.Var.invoke(Var.java:401)
    at clojure.lang.AFn.applyToHelper(AFn.java:161)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.core$apply.invoke(core.clj:602)
    at leiningen.core$apply_task.invoke(core.clj:262)
    at leiningen.core$_main.doInvoke(core.clj:329)
    at clojure.lang.RestFn.invoke(RestFn.java:410)
    at clojure.lang.AFn.applyToHelper(AFn.java:161)
    at clojure.lang.RestFn.applyTo(RestFn.java:132)
    at clojure.core$apply.invoke(core.clj:602)
    at leiningen.core$_main.invoke(core.clj:332)
    at user$eval361.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.eval(Compiler.java:6431)
    at clojure.core$eval.invoke(core.clj:2795)
    at clojure.main$eval_opt.invoke(main.clj:296)
    at clojure.main$initialize.invoke(main.clj:315)
    at clojure.main$script_opt.invoke(main.clj:339)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:457)
    at clojure.lang.Var.invoke(Var.java:413)
    at clojure.lang.AFn.applyToHelper(AFn.java:172)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
    ... 5 more

При попытке подключения к реплике выдается другое исключение:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at jline.ConsoleRunner.main(ConsoleRunner.java:69)
Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused
    at clojure.lang.Util.runtimeException(Util.java:165)
    at clojure.lang.Reflector.invokeConstructor(Reflector.java:193)
    at leiningen.repl$poll_repl_connection$fn__1425.invoke(repl.clj:113)
    at leiningen.repl$poll_repl_connection.invoke(repl.clj:113)
    at leiningen.repl$repl.invoke(repl.clj:153)
    at clojure.lang.Var.invoke(Var.java:401)
    at clojure.lang.AFn.applyToHelper(AFn.java:161)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.core$apply.invoke(core.clj:602)
    at leiningen.core$apply_task.invoke(core.clj:262)
    at leiningen.core$_main.doInvoke(core.clj:329)
    at clojure.lang.RestFn.invoke(RestFn.java:410)
    at clojure.lang.AFn.applyToHelper(AFn.java:161)
    at clojure.lang.RestFn.applyTo(RestFn.java:132)
    at clojure.core$apply.invoke(core.clj:602)
    at leiningen.core$_main.invoke(core.clj:332)
    at user$eval361.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.eval(Compiler.java:6431)
    at clojure.core$eval.invoke(core.clj:2795)
    at clojure.main$eval_opt.invoke(main.clj:296)
    at clojure.main$initialize.invoke(main.clj:315)
    at clojure.main$script_opt.invoke(main.clj:339)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:457)
    at clojure.lang.Var.invoke(Var.java:413)
    at clojure.lang.AFn.applyToHelper(AFn.java:172)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
    ... 5 more

person Toby Hede    schedule 03.02.2012    source источник
comment
Просто предложение, но вы можете опубликовать хотя бы файл project.clj. Другим предложением было бы соединить это в другом каталоге lein new test-proj. Я предполагаю, что что-то в каталогах .lein было испорчено, но, будучи новым пользователем lein, это всего лишь предположение.   -  person octopusgrabbus    schedule 03.02.2012


Ответы (1)


похоже, что настоящая ошибка:

" Can't dynamically bind non-dynamic var: leiningen.compile/eval-in-project"

это вызвано одним из изменений в 1.3, которое делает vars намного быстрее, но требует, чтобы те, которые будут динамически восстанавливаться, были помечены ^dynamic. используемая вами версия lein несовместима с используемой вами версией clojure. Когда я столкнулся с этой проблемой в понедельник, она исчезла после запуска:

lein upgrade
person Arthur Ulfeldt    schedule 03.02.2012
comment
Проблема заключалась в управлении версиями - по какой-то причине использовалась версия Lein 1.6.jar, а не последняя версия 1.7.0.snapshot (несмотря на то, что версия была установлена ​​​​в сценарии lein). Удаление старой банки решило проблему. - person Toby Hede; 04.02.2012
comment
В Leiningen 1.6 была проблема, из-за которой некорректно работающие плагины могли привести к тому, что Leiningen использовал неправильную версию Clojure для внутреннего использования. Это должно быть исправлено в 1.7. - person ; 09.02.2012