19

如何安装 leiningen 插件?

例如,leiningen-run?

我看到这个叫做“clojars.org”的东西,以及如何“推送”到它,但我没有看到任何关于“拉”它的东西。

4

2 回答 2

11

取决于插件

:plugins使用 Leiningen 2.0 及更高版本,您可以在项目地图中指定要作为值的插件。请参阅示例project.clj文件。请注意,“示例”有点用词不当,它是所有可能(内置)键及其默认值文档的参考。

来润

lein-run 功能现在是核心 leiningen 的一部分,不需要指定为插件

clojars.org

Clojars 是 clojure 库的存储库,非常类似于 maven Central(或在较小程度上,rubygems)。你没有明确地从中拉出来。相反,Leiningen 被配置为在一组标准的存储库中搜索您的:dependenciesEg maven Central 和 clojars。Maven 通过三元组唯一地标识它的依赖项(用 Maven 的说法是工件)(group-name, artifact-name, version)。Leiningen 利用完全相同的机制,除了组名没有像 maven Central 那样必须是反向 URI 的限制。在实践中,您会倾向于看到许多在 clojars 中发布的库,其名称与 clojure 命名空间和 github 项目名称非常匹配,而不会令人讨厌com.mydomain.awesomelib

:repositories您可以通过在project.clj中设置要搜索的自己的存储库(或调整各种选项)。:mirrors如果你有一个 maven repo 的内部镜像,你可以类似地设置。

“安装”一个未发布的插件

最后,虽然我不认为那是你直接问的但它仍然很有趣,如果你正在开发一个插件或者依赖一个尚未正式发布的插件,你可以设置:plugin-repositories

于 2013-05-18T19:36:34.303 回答
10

如果 Clojars 提供了插件,例如 lein run,只需将其添加到项目的:dev-dependenciesproject.clj 中,然后在项目目录中lein deps让 Leiningen 拉入所有依赖项。lein run 文档的注释摘录:

(defproject island-wari "0.1"
  :description "Web application for playing the Island Wari game."
  :main wari
  :dependencies     [[org.clojure/clojure "1.1.0-master-SNAPSHOT"]
                     [org.clojure/clojure-contrib "1.1.0-master-SNAPSHOT"]
                     [org.clojars.liebke/compojure "0.3.1-master"]]
  :dev-dependencies [[org.clojure/swank-clojure "1.0"]
                     [leiningen-run "0.2"]]) ; <--- this bit makes it possible
                                             ;      to use lein run

完成上述操作后,您应该可以lein run在项目目录中运行您的应用程序。

更新:如果您想为 Leiningen 编写自己的插件,请查看nakkaya.com 上的本教程。即使您不打算编写 lein 插件,仍然可以查看该博客,它绝对是非常棒的。

于 2010-03-06T19:00:42.230 回答