如何在Clojure项目中安装依赖

13

这是一个新手问题,如果有冒犯之处请见谅。

但是在*nix电脑上如何安装seesaw呢? 是的,我已阅读README.MD文件,但项目.clj怎样知道在哪里查找库jar包(例如seesaw)?

2个回答

17

编辑project.clj,在:dependencies向量中添加依赖项(项目标识信息和版本的向量)。

依赖声明如下:[seesaw"1.4.2"],可以在http://clojars.org上搜索seesaw找到。

你的项目文件应该至少类似于:


(defproject my-awesome-gui-application "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [seesaw "1.4.2"]])

如果你正在使用更新版本的Leiningen,你可以输入lein deps :tree来查看你的依赖树。换句话说,你可以看到哪些库实际上被使用了,即你声明的库及其传递依赖。


$ lein deps :tree
 [org.clojure/clojure "1.4.0"]
 [seesaw "1.4.2"]
   [com.jgoodies/forms "1.2.1"]
   [com.miglayout/miglayout "3.7.4"]
   [j18n "1.0.1"]
   [org.fife.ui/rsyntaxtextarea "2.0.3"]
   [org.swinglabs.swingx/swingx-core "1.6.3"]
     [org.swinglabs.swingx/swingx-action "1.6.3"]
     [org.swinglabs.swingx/swingx-autocomplete "1.6.3"]
       [org.swinglabs.swingx/swingx-common "1.6.3"]
     [org.swinglabs.swingx/swingx-painters "1.6.3"]
     [org.swinglabs.swingx/swingx-plaf "1.6.3"]
如果你正在使用较旧版本的Leiningen,请键入lein deps,并查看./libs目录以查看获取了哪些JAR文件(更新版本的Lein更加智能,直接使用位于~/.m2中的JAR文件,而不是将它们复制到项目中。目录~/.m2是您本地Maven存储库的位置。Leiningen处理Maven并下载您指定的所有依赖项,因此您无需直接担心Maven)。
我提到了Maven和您的本地Maven存储库~/.m2。幸运的是,除非您需要浏览maven中央库以查找Java库以添加到project.clj中,否则您可能永远不必考虑Maven(但在某些情况下,您可能会怀疑jar文件已损坏或出现了其他问题,知道只需删除.m2存储库就可以消除这种状态是很好的)。

7

project.clj文件指定了leiningen项目的配置信息。

Leiningen会下载并安装在project.clj文件中指定的依赖项,然后启动项目/运行repl进程/将项目编译为Java jar文件/等等。请参见上面的链接。简而言之,Leiningen是您的基本操作系统和基本Java-based Clojure运行时/编译器之间最流行的粘合剂。

通常情况下,您不需要安装任何Clojure库(甚至不需要安装Clojure)。除非您需要额外的库来开发/调试当前项目(通常您不需要),您只需安装Leiningen,Leiningen将为您要运行的项目安装所需的依赖项。

更具体地说:Leiningen通过委派给Maven来获取其下载位置/安装说明,这是一个非常有趣的项目。但如果您的时间很宝贵,则可能不值得深入了解。


我喜欢这个解释。它澄清了我对Leiningen的许多疑问。 - Zchpyvr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接