Número incorrecto de argumentos pasó a: repl $ repl
Pregunta
Tengo un problema con un compojure "Guía de iniciación" que hago notunderstand. Cuando ejecuto el ejemplo de http://weavejester.github.com/compojure/ docs / getting-started.html
... me sale el siguiente error en el paso Lein repl:
~/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
He intentado tanto la estabilidad y la versión de desarrollo de Lein sin ningún éxito. ¿Alguna idea sobre lo que podría mirar para el próximo? Me sale el mismo resultado tanto en Linux y cygwin.
Al ejecutar de forma manual, parece que funcionan bien en 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
Solución
Teniendo en cuenta su comentario sobre la cuestión - la parte correspondiente es "Con Lein-estable que funciona, pero no con el maestro de git." -. Yo diría que estás siendo golpe por el nuevo manejo de la tarea repl
introducido en comprometerse 44b6369aec1e23bcda1db1b6570a03ca524464e5
del 16 abril de 2010 Leiningen
Leiningen 1.1 fue lanzado el 16 de febrero y hace cosas a la antigua, lo que significa que la tarea repl
se maneja especialmente por el script lein
; post-44b6369aec
Leiningen encarga de la tarea repl
la misma manera que todos los demás, es decir, a través de la función leiningen.repl/repl
. Esta última simplemente no acepta argumentos adicionales, de ahí el IllegalArgumentException
aridad-relacionado que se está viendo. Antes de preguntar, no estoy seguro de si eso es probable que cambie en el futuro.
Lo que debe trabajar es lein repl
seguido por (require 'hello-www.core)
; Lamentablemente, sin embargo, parece que hay un problema con la cabeza de Leiningen que impide que a partir de trabajo (al menos en mi caja). Es una apuesta segura para esperar que va a ser arreglados con el tiempo, pero por el momento, sólo tiene que utilizar lein-stable
. Eso Compojure tutorial utiliza Clojure 1.1 y no la punta de lanza ... Se podría ahorrar algo de tiempo para tratar Leiningen la misma manera.