установка leining-noir не удалась - PullRequest
9 голосов
/ 12 марта 2012

Я только начинаю изучать Clojure и веб-программирование. Я установил Leiningen 2.0.0-preview2 на Clojure 1.3.0, и он может правильно создавать проекты. Но я всегда получаю ошибку That's not a task. Use "lein help" to list all tasks., когда запускаю lein plugin install lein-noir 1.2.1 для установки noir.

Я также пытался добавить 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 голосов
/ 18 мая 2012

Если вы добавили lein-noir к .lein/profiles.clj, как описано выше, вам нужно выполнить команду: lein new noir yoursitename.Не lein noir new my-website!

Также добавьте lein-noir "1.2.1"

7 голосов
/ 22 марта 2012

Leiningen 2 очень новый. Большая часть документации по-прежнему описывает, как работать с leiningen 1.7.0. Способы установки lein-noir, которые вы пытались установить, не работают с leiningen 2. Документацию, описывающую отличие lein версии 2 от lein 1.7.0, можно найти здесь .

В двух словах, вам нужно создать файл profiles.clj в вашем каталоге ~/.lein. Чтобы указать, что вы хотите использовать lein-noir, ваш файл ~ / .lein / profiles.clj должен выглядеть следующим образом:

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

Теперь вы можете создать новый проект noir, набрав:

lein new noir projectname
...