lein-autodoc与Leiningen 2

时间:2012-12-20 18:13:22

标签: clojure leiningen autodoc

我正在尝试使用lein-autodoc,因为我相信它是Clojure的首选文档生成器。我已根据lein-autodoc github页面上的说明将:dev-dependencies [[lein-autodoc "0.9.0"]]添加到我的项目定义中。

正常运行lein depslein autodoc失败,声称autodoc不是任务。

我怀疑问题是lein-autodoc已经设置为与leiningen 1合作。但是,我使用了leiningen 2.我是否应该用autodoc调用lein?或者是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的文档系统?

2 个答案:

答案 0 :(得分:5)

autodoc曾经是更常见的文档生成器,但是现在它主要用于Clojure本身(并且针对该任务进行了优化)。我强烈建议您改用codox。这很棒。您可以在我自己的一个项目here

中查看它

(我知道在另一个答案中已经说过,但是为了我的答案是完整的,我还是需要添加它)

此外,在leiningen 2中没有:dev-dependencies键。相反,有一个:dev个人资料。有关更多信息,请查看Leiningen配置文件。在这种情况下,您需要做的就是使用所需的插件(如codox,autodoc等)向项目或全局用户配置文件添加:plugins密钥。

答案 1 :(得分:3)

lein 2中没有:dev-dependencies,您必须使用profiles进行此操作。

我不确定autodoc是否真的适用于lein 2。请记住,clojure及其环境变得非常快,并且有很多过时的信息。