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
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top