首页 文章

leiningen安装lein-noir失败了

提问于
浏览
9

我'm just starting learning Clojure and web programming. I'已在 Clojure 1.3.0 上安装了 Leiningen 2.0.0-preview2 ,它可以正确创建项目 . 但是当我运行 lein plugin install lein-noir 1.2.1 以安装noir时,我总是得到 That's not a task. Use "lein help" to list all tasks. 错误 .

我也尝试将lein-noir作为 :dev-dependencies 添加到 project.clj 并运行 lein deps 但它什么也没做 .

有谁知道这是什么问题,我该如何解决它 . 非常感谢!

我的环境:

  • Mac OS X 10.6.8

  • Java 6

  • Leiningen 2.0.0-preview2

我也尝试了Leiningen 1.7,但得到了不同的错误,有人说这是因为leiningen 1.7只适用于Clojure 1.2.x这是我使用Leiningen 1.7时的错误:

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.(ILclojure/lang/Keyword;)V
    at clojure.lang.Util.runtimeException(Util.java:165)
    at clojure.lang.Compiler.eval(Compiler.java:6476)
    at clojure.lang.Compiler.eval(Compiler.java:6431)
    at clojure.core$eval.invoke(core.clj:2795)
    at clojure.main$eval_opt.invoke(main.clj:296)
    at clojure.main$initialize.invoke(main.clj:315)
    at clojure.main$script_opt.invoke(main.clj:339)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:551)
    at clojure.lang.Var.invoke(Var.java:426)
    at clojure.lang.AFn.applyToHelper(AFn.java:193)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
Caused by: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.(ILclojure/lang/Keyword;)V
    at leiningen.util.plugins$stale_QMARK_.(plugins.clj:68)
    at leiningen.util.plugins__init.load(Unknown Source)
    at leiningen.util.plugins__init.(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at clojure.lang.RT.loadClassForName(RT.java:2030)
    at clojure.lang.RT.load(RT.java:417)
    at clojure.lang.RT.load(RT.java:398)
    at clojure.core$load$fn__4610.invoke(core.clj:5386)
    at clojure.core$load.doInvoke(core.clj:5385)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5200)
    at clojure.core$load_lib.doInvoke(core.clj:5237)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$load_libs.doInvoke(core.clj:5271)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:604)
    at clojure.core$use.doInvoke(core.clj:5363)
    at clojure.lang.RestFn.invoke(RestFn.java:482)
    at leiningen.core$loading__4414__auto__.invoke(core.clj:1)
    at leiningen.core__init.load(Unknown Source)
    at leiningen.core__init.(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at clojure.lang.RT.loadClassForName(RT.java:2030)
    at clojure.lang.RT.load(RT.java:417)
    at clojure.lang.RT.load(RT.java:398)
    at clojure.core$load$fn__4610.invoke(core.clj:5386)
    at clojure.core$load.doInvoke(core.clj:5385)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5200)
    at clojure.core$load_lib.doInvoke(core.clj:5237)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$load_libs.doInvoke(core.clj:5271)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:604)
    at clojure.core$use.doInvoke(core.clj:5363)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at user$eval1.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    ... 11 more

2 回答

  • 8

    如果您已将lein-noir添加到 .lein/profiles.clj ,如上所示,则需要运行命令: lein new noir yoursitename . 不是 lein noir new my-website

    另外添加 lein-noir "1.2.1"

  • 7

    Leiningen 2非常新 . 大多数文档仍在描述如何使用leiningen 1.7.0进行操作 . 您与leiningen合作的方式2.描述lein版本2与lein 1.7.0不同的文档可以在here找到 .

    简而言之,您需要在 ~/.lein 目录中创建 profiles.clj 文件 . 要指定要使用lein-noir,您的〜/ .lein / profiles.clj文件应如下所示:

    {:user {:plugins [[lein-noir "1.2.1"]]}}
    

    现在,您可以通过键入以下内容来创建新的noir项目:

    lein new noir projectname
    

相关问题