lein-autodoc с Leiningen 2

Я пытаюсь использовать lein-autodoc, поскольку считаю его предпочтительным генератором документации для Clojure. . Я добавил :dev-dependencies [[lein-autodoc "0.9.0"]] в определение моего проекта в соответствии с инструкциями на странице lein-autodoc github.

Запуск lein deps выполняется без проблем, однако lein autodoc не работает, утверждая, что autodoc не является задачей.

Я подозреваю, что проблема в том, что lein-autodoc настроен для работы с leiningen 1. Однако я использую leiningen 2. Есть ли альтернативный способ вызова lein с autodoc? Или пакет lein-autodoc не настроен для работы с lein 2? Если нет, есть ли другой предпочтительный вариант генерации документации, совместимый с lein2?

ИЗМЕНИТЬ:

После подсказки Cubic ниже я создал ~/.lein/profiles.clj следующим образом:

{:user {:plugins [[lein-autodoc "0.9.0"]]}}

Теперь запуск lein autodoc приводит к следующему:

$ lein autodoc
Exception in thread "main" java.lang.IllegalAccessError: sh does not exist
    at clojure.core$refer.doInvoke(core.clj:3778)
    at clojure.lang.RestFn.applyTo(RestFn.java:139)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$load_lib.doInvoke(core.clj:5279)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$load_libs.doInvoke(core.clj:5298)
    (...)

Это говорит о том, что, возможно, autodoc несовместим с Lein 2? Если нет, есть ли какая-либо система документации, которая работает с Lein 2?


person Peter    schedule 20.12.2012    source источник


Ответы (2)


Autodoc раньше был более распространенным генератором документации, но в наши дни он в основном используется только для самого Clojure (и оптимизирован для этой задачи). Я настоятельно рекомендую вместо этого использовать codox. Это отлично. Вы можете увидеть его в действии в одном из моих собственных проектов здесь

(Я знаю, что это было сказано в другом ответе, но чтобы мой ответ был полным, мне все равно нужно его добавить)

Также в leiningen 2 нет ключа :dev-dependencies. Вместо этого есть профиль :dev. Взгляните на документацию по профилю Leiningen для получения дополнительной информации. В этом случае все, что вам нужно сделать, это добавить ключ :plugins в ваш проект или глобальный профиль пользователя с нужными вам плагинами (такими как codox, autodoc и т. д.).

person Rayne    schedule 20.12.2012
comment
Отлично. Я с подозрением относился к тому, был ли autodoc последним и лучшим. Спасибо за самоуверенный ответ с хорошими примерами. - person Peter; 21.12.2012
comment
Я знаю, что это старый вопрос, но я хотел вмешаться и сказать, что Marginalia создает прекрасную документацию. Это не так формально, как codox или autodoc, но я думаю, что это создает очень приятный, грамотный стиль. github.com/gdeer81/marginalia - person David Williams; 02.10.2014
comment
Эта проблема все еще существует с этим ответом. clojure.lang.Compiler$CompilerException: java.lang.IllegalAccessError: sh does not exist, compiling:(leiningen/autodoc.clj:1:1) Почему это было принято? - person David Williams; 12.10.2014
comment
Ну, для начала, потому что это не было фактически неверным. Вам нужно использовать :plugins для этого в leiningen 2. Но да, github.com/tomfaulhaber/lein-autodoc/blob/master/src/leiningen/ является причиной, по которой он не работает. Я предлагаю вам отправить запрос на включение или просто разветвить проект, если вы хотите его использовать. Лично я бы просто использовал один из более новых инструментов, который... знаете... работает. - person Rayne; 13.10.2014