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
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top