Mauvais numéro de args passé à: rempl $ rempl
Question
J'ai un problème avec un compojure « Getting Started » exemple que je fais notunderstand. Quand je lance l'exemple de http://weavejester.github.com/compojure/ docs / se-started.html
... je reçois l'erreur suivante à l'étape de rempl de lein:
~/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
J'ai essayé à la fois la stabilité et la version développeur de lein sans succès. Toutes les idées sur ce que je pouvais trouver à côté? Je reçois le même résultat à la fois sur Linux et Cygwin.
Quand je lance, il semble manuellement fonctionner correctement sous 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
La solution
Compte tenu de votre commentaire sur la question - la partie pertinente est « Avec lein stable cela fonctionne, mais pas avec le maître de git. » -. Je dirais que vous être frappé par une nouvelle gestion de la tâche repl
de Leiningen introduit COMMIT 44b6369aec1e23bcda1db1b6570a03ca524464e5
du 16 Avril 2010
Leiningen 1.1 a été publié le 16 Février et fait des choses à l'ancienne, ce qui signifie que la tâche repl
est traitée spécialement par le script lein
; Leiningen post-44b6369aec
gère la tâche repl
de la même manière que tous les autres, à savoir par le biais de la fonction leiningen.repl/repl
. Ce dernier ne simplement pas accepter des arguments supplémentaires, d'où la IllegalArgumentException
liée à arité que vous voyez. Avant de vous demander, je ne sais pas si cela est susceptible de changer à l'avenir.
Ce qu'il faut travailler est lein repl
suivie (require 'hello-www.core)
; malheureusement, cependant, il semble y avoir un problème avec la tête de Leiningen qui empêche que de travailler (au moins sur ma boîte). Il est un pari sûr d'attendre qu'il va se fixe un jour, mais pour l'instant, il suffit d'utiliser lein-stable
. Ce tutoriel utilise Compojure Clojure 1.1 et non le bord saignant ... Il pourrait vous faire économiser un peu de temps pour traiter Leiningen de la même manière.