我怎样安装 Leiningen 插件?
比如说,leiningen-run插件?
我看到了一个叫做 "clojars.org" 的东西,以及如何向其中 "push",但我没有看到任何关于如何从中 "pull" 的信息。
如果 Clojars 上有一个插件,比如 lein run,只需将其添加到项目.clj的:dev-dependencies
中,然后在项目目录中运行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插件,也请查看该博客,它绝对非常棒。
从Leiningen 2.0版本开始,您可以在项目映射中将要使用的插件作为:plugins
的值进行指定。请参见示例project.clj文件。请注意,“sample”有些取名不当,它是所有可能(内置)关键字和默认值的参考。
lein-run功能现在已经成为核心Leiningen的一部分,并且不需要作为插件进行指定。
Clojars是一个Clojure库仓库,类似于Maven中央存储库(或在某种程度上类似于RubyGems)。您不需要显式地从它中提取。相反,Leiningen被配置为搜索一组标准的存储库来查找您的:dependencies
。例如,Maven通过三元组(group-name, artifact-name, version)
唯一标识其依赖项(Maven术语中的构件)。Leiningen使用完全相同的机制,唯一的区别是组名称没有像Maven中央那样必须是反向URI的限制。实际上,您会看到许多库发布在Clojars中,其中名称与Clojure命名空间和GitHub项目名称相匹配,而没有烦人的com.mydomain.awesomelib
。
您可以通过在您的project.clj中使用 :repositories
对自己的存储库进行搜索(或调整各种选项)。如果您有Maven repo的内部镜像,则同样可以设置:mirrors
。
最后,虽然我不认为这是你直接询问的内容,但这仍然很有趣。如果你正在开发一个插件或者想要依赖于一个尚未正式发布的插件,你可以设置 :plugin-repositories
。
:plugins [[lein-search "0.3.4"]]
。 - Francois