我刚开始学习Clojure和网络编程。我在Leiningen 2.0.0-preview2
上安装了Clojure 1.3.0
,它可以正确创建项目。但是当我运行That's not a task. Use "lein help" to list all tasks.
来安装noir时,我总是遇到lein plugin install lein-noir 1.2.1
错误。
我还尝试将lein-noir作为:dev-dependencies
添加到project.clj
并运行lein deps
,但它没有做任何事情。
有谁知道问题是什么,我该如何解决?非常感谢!
我的环境:
我也尝试了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
答案 0 :(得分:8)
如果您已将lein-noir添加到上述.lein/profiles.clj
,则需要运行以下命令:
lein new noir yoursitename
。
不是lein noir new my-website
!
同时添加lein-noir "1.2.1"
答案 1 :(得分:7)
Leiningen 2非常新。大多数文档仍在描述如何使用leiningen 1.7.0进行操作。您尝试安装lein-noir的方法不适用于leiningen 2.可以找到描述lein版本2与lein 1.7.0不同的文档here。
简而言之,您需要在profiles.clj
目录中创建~/.lein
文件。要指定要使用lein-noir,您的〜/ .lein / profiles.clj文件应如下所示:
{:user {:plugins [[lein-noir "1.2.1"]]}}
现在您可以输入以下内容创建一个新的黑色项目:
lein new noir projectname