تم تمرير عدد خاطئ من args إلى: REPL $ REPL
سؤال
لدي مشكلة في مثال على "البدء" المتوافق الذي لا أفهمه. عندما أقوم بتشغيل المثال من http://weavejester.github.com/compojure/docs/getting-started.html
... أحصل على الخطأ التالي في خطوة 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
لقد جربت كل من النسخة المستقرة والمطور من لين دون أي نجاح. أي أفكار حول ما يمكن أن أبحث عنه التالي؟ أحصل على نفس النتيجة على 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
المحلول
مع الأخذ في الاعتبار تعليقك على السؤال-الجزء ذي الصلة هو "مع Lein Stable ، ولكن ليس مع Master من Git." - أود أن أقول إنك تتعرض للتعامل الجديد مع لينينين repl
تم تقديم المهمة في الالتزام 44b6369aec1e23bcda1db1b6570a03ca524464e5
من 16 أبريل 2010.
تم إصدار Lininingen 1.1 في 16 فبراير ويفعل الأشياء بالطريقة القديمة ، مما يعني repl
يتم التعامل مع المهمة خصيصًا من قبل lein
النصي؛ بريد-44b6369aec
Lininingen يتعامل مع repl
المهمة بنفس الطريقة مثل جميع الآخرين ، أي من خلال leiningen.repl/repl
وظيفة. هذا الأخير ببساطة لا يقبل حجج إضافية ، ومن ثم المرتبطة IllegalArgumentException
التي تراها. قبل أن تسأل ، لست متأكدًا مما إذا كان من المحتمل أن يتغير ذلك في المستقبل.
ما يجب أن يعمل lein repl
تليها (require 'hello-www.core)
; ؛ ومع ذلك ، يبدو أن هناك مشكلة في رأس لينينينين الذي يمنع ذلك من العمل (على الأقل على صندوقي). إنه رهان آمن أن نتوقع أن يتم إصلاحه في النهاية ، ولكن في الوقت الحالي ، استخدم فقط lein-stable
. يستخدم هذا البرنامج التعليمي Compojure Clojure 1.1 وليس حافة النزيف ... قد يوفر لك بعض الوقت لعلاج Lininingen بنفس الطريقة.