3

私が理解していない複雑な「はじめに」の例に問題があります。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

lein の安定版と開発者版の両方を試しましたが、成功しませんでした。次に何を探すことができるかについてのアイデアはありますか?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
4

1 に答える 1

2

質問に対するあなたのコメントを考慮すると、関連する部分は「lein-stableでは機能しますが、gitのmasterでは機能しません」です。-- 2010 年 4 月 16 日replの commit で導入された Leiningen の新しいタスク処理に悩まされていると思います。44b6369aec1e23bcda1db1b6570a03ca524464e5

Leiningen 1.1 は 2 月 16 日にリリースされ、古い方法で動作します。つまり、replタスクはleinスクリプトによって特別に処理されます。post 44b6369aec-Leiningen はrepl、他のすべての方法と同じように、つまりleiningen.repl/repl関数を通じてタスクを処理します。後者は単に追加の引数を受け入れないため、表示されているアリティ関連IllegalArgumentExceptionです。あなたが尋ねる前に、それが将来変わる可能性があるかどうかはわかりません.

何が機能するかの後に;がlein repl続きます。(require 'hello-www.core)残念ながら、Leiningen の HEAD には問題があり、それが機能しないようです (少なくとも私のボックスでは)。最終的に修正されることを期待するのは安全な賭けですが、当面はlein-stable. その Compojure のチュートリアルでは Clojure 1.1 を使用しており、最先端ではありません... Leiningen を同じように扱うことで、時間を節約できるかもしれません。

于 2010-05-19T02:28:13.400 に答える