Неправильное количество args передано: refl $ repl
Вопрос
У меня есть проблемы с компиюром «Начало работы» пример, что я не понимаю. Когда я бегу пример из http://weavejester.github.com/compojure/docs/getting-started.html.
... Я получаю следующую ошибку в шаге Lein Rep:
~/hello-www> lein repl src/hello_www/core.clj
Exception in thread "main" java.lang.IllegalArgumentException: Wrong number of args passed to: repl$repl (NO_SOURCE_FILE:0)
at clojure.lang.Compiler.eval(Compiler.java:5359)
at clojure.lang.Compiler.eval(Compiler.java:5311)
at clojure.core$eval__4350.invoke(core.clj:2364)
at clojure.main$eval_opt__6502.invoke(main.clj:228)
at clojure.main$initialize__6506.invoke(main.clj:247)
at clojure.main$script_opt__6526.invoke(main.clj:263)
at clojure.main$main__6544.doInvoke(main.clj:347)
at clojure.lang.RestFn.invoke(RestFn.java:483)
at clojure.lang.Var.invoke(Var.java:381)
at clojure.lang.AFn.applyToHelper(AFn.java:180)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: Wrong number of args passed to: repl$repl
at clojure.lang.AFn.throwArity(AFn.java:439)
at clojure.lang.AFn.invoke(AFn.java:43)
at clojure.lang.Var.invoke(Var.java:369)
at clojure.lang.AFn.applyToHelper(AFn.java:165)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.core$apply__3776.invoke(core.clj:535)
at leiningen.core$_main__59$fn__61.invoke(core.clj:94)
at leiningen.core$_main__59.doInvoke(core.clj:91)
at clojure.lang.RestFn.applyTo(RestFn.java:138)
at clojure.core$apply__3776.invoke(core.clj:535)
at leiningen.core$_main__59.invoke(core.clj:97)
at user$eval__67.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:5343)
... 11 more
Я пробовал как стабильную, так и разработчику версию Лейна без какого-либо успеха. Любые идеи о том, что я смогу искать дальше? Я получаю тот же результат как на Linux, так и Cygwin.
Когда я бегу вручную, кажется, работает нормально на Linux:
java -cp "lib/*" clojure.main src/hello_www/core.clj
2010-05-17 19:34:17.280::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2010-05-17 19:34:17.281::INFO: jetty-6.1.14
2010-05-17 19:34:17.382::INFO: Started SocketConnector@0.0.0.0:8080
Решение
Учитывая ваш комментарий к вопросу - соответствующая часть "с лейн-стабильным, она работает, но не с мастером из Git." - Я бы сказал, что вы попадаете в новую обработку Лейнингена repl
задача, представленная в совершении 44b6369aec1e23bcda1db1b6570a03ca524464e5
С 16 апреля 2010 года.
Лейнинден 1.1 был выпущен 16 февраля и делает вещи старыми способом, что означает repl
задача обрабатывается специально по lein
скрипт; сообщение-44b6369aec
Ленинден обрабатывает repl
задание так же, как и все остальные, то есть через leiningen.repl/repl
функция. Последнее просто не принимает дополнительные аргументы, отсюда IllegalArgumentException
что ты видишь. Прежде чем спросить, я не уверен, что это может измениться в будущем.
Что должно работать lein repl
с последующим (require 'hello-www.core)
; К сожалению, однако, есть проблема с головой Лейнингена, который предотвращает работу (по крайней мере, на моей коробке). Это безопасная ставка, чтобы ожидать, что он будет исправлен в конце концов, но на данный момент, просто использовать lein-stable
. Отказ Этот урок компетенции использует Clojure 1.1, а не кровь кровотечения ... Это может сэкономить вам некоторое время для лечения ленсина одинаково.