سؤال

لدي مشكلة في مثال على "البدء" المتوافق الذي لا أفهمه. عندما أقوم بتشغيل المثال من 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 بنفس الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top