2012-05-09 53 views
4

根据https://github.com/technomancy/leiningen/blob/master/sample.project.clj 我可以在a:repl-options中附加一个:init。Lein repl-options:init

然而,当我尝试:

lein version; echo "====="; cat project.clj; echo "====="; lein repl 

我得到的输出:

Leiningen 1.7.1 on Java 1.6.0_29 Java HotSpot(TM) 64-Bit Server VM 
===== 
(defproject 
    test "0.0.1" 
    :dependencies [[org.clojure/clojure "1.3.0"]] 
    :source-paths ["src"] 
    :jvm-opts ["-Xms4g" "-Xmx4g"] 
    :repl-options { 
       :init (println "Init") 
       } 
) 

===== 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at jline.ConsoleRunner.main(ConsoleRunner.java:69) 
Caused by: java.lang.IllegalArgumentException: No value supplied for key: [:init (println "Init")] (NO_SOURCE_FILE:0) 
    at clojure.lang.Compiler.eval(Compiler.java:5440) 
    at clojure.lang.Compiler.eval(Compiler.java:5391) 
    at clojure.core$eval.invoke(core.clj:2382) 
    at clojure.main$eval_opt.invoke(main.clj:235) 
    at clojure.main$initialize.invoke(main.clj:254) 
    at clojure.main$script_opt.invoke(main.clj:270) 
    at clojure.main$main.doInvoke(main.clj:354) 
    at clojure.lang.RestFn.invoke(RestFn.java:457) 
    at clojure.lang.Var.invoke(Var.java:377) 
    at clojure.lang.AFn.applyToHelper(AFn.java:172) 
    at clojure.lang.Var.applyTo(Var.java:482) 
    at clojure.main.main(main.java:37) 
    ... 5 more 
Caused by: java.lang.IllegalArgumentException: No value supplied for key: [:init (println "Init")] 
    at clojure.lang.PersistentHashMap.createWithCheck(PersistentHashMap.java:89) 
    at clojure.core$hash_map.doInvoke(core.clj:327) 
    at clojure.lang.RestFn.applyTo(RestFn.java:137) 
    at clojure.core$apply.invoke(core.clj:540) 
    at leiningen.repl$repl_options.invoke(repl.clj:16) 
    at leiningen.repl$repl_server.doInvoke(repl.clj:69) 
    at clojure.lang.RestFn.applyTo(RestFn.java:146) 
    at clojure.core$apply.invoke(core.clj:546) 
    at leiningen.repl$repl.invoke(repl.clj:145) 
    at clojure.lang.Var.invoke(Var.java:365) 
    at clojure.lang.AFn.applyToHelper(AFn.java:161) 
    at clojure.lang.Var.applyTo(Var.java:482) 
    at clojure.core$apply.invoke(core.clj:542) 
    at leiningen.core$apply_task.invoke(core.clj:262) 
    at leiningen.core$_main.doInvoke(core.clj:329) 
    at clojure.lang.RestFn.invoke(RestFn.java:410) 
    at clojure.lang.AFn.applyToHelper(AFn.java:161) 
    at clojure.lang.RestFn.applyTo(RestFn.java:132) 
    at clojure.core$apply.invoke(core.clj:542) 
    at leiningen.core$_main.invoke(core.clj:332) 
    at user$eval47.invoke(NO_SOURCE_FILE:1) 
    at clojure.lang.Compiler.eval(Compiler.java:5424) 
    ... 16 more 

我在做什么错?

特别是,我不明白为什么[:init + func +]被视为键,而不是:init被视为键。

谢谢!

+0

@dsouth:我是个白痴。我没有意识到谷歌的第一个结果与主链相关,而不是稳定的。如果您发表评论作为答案,我会接受它。 – user1383359

+1

大部分时间,每个人都是白痴。需要一个聪明的人来认识并承认它。 :) –

回答

3

不确定,但是您给出的链接指向了master,这可能是Leiningen 2,而不是稳定分支,可能是1.7-ish?如果你在你的github链接上将分支切换到stable,那么没有:init参数...