假设我找到了一个很酷的clojure库,比如https://github.com/clojurewerkz/buffy
现在我想用它。它只存在于github上。
我该怎么做?我希望有一个完整的开始,以完成你好世界的例子。
我已经读过将其编译为jar并使用它,或者在我的project.clj中使用:dependencies,但到目前为止还没有完成任何示例,而且我是新的。
例如在python中,我git clone
将repo放入我工作树的根目录,任何文件只能说import buffy
答案 0 :(得分:3)
我刚刚在五分钟前学会了这个。我想使用clojure-csv库,这是我使用Leiningen
所做的制作一个新的莱宁根项目
lein new app csvtest
现在我有一个名为csvtest/
的文件夹。在csvtest/project.clj
文件中,编辑依赖项部分以添加clojure-csv github路径和版本。我不太确定版本控制是如何工作的:
:dependencies [[org.clojure/clojure "1.5.1"]
[clojure-csv/clojure-csv "2.0.1"]]
现在运行lein deps
以自动下载项目的任何未解析的依赖项
$ lein deps
...
Retrieving clojure-csv/clojure-csv/2.0.1/clojure-csv-2.0.1.pom from clojars
...
现在编辑csvtest/src/csvtest/core.clj
。看起来像这样:
修改(根据sveri的评论,我将:use closjure-csv.core
更改为:require
行
(ns csvtest.core
(:gen-class)
(:require [clojure-csv.core :refer [parse-csv]]))
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println (parse-csv "1,2,3,hello,world")))
您必须将(:require [clojure-csv.core :refer [parse-csv]])
行添加到ns
,并在main中调用parse-csv
,即库提供的功能之一。从阅读开始,:use
看起来有点赞成:require
。
注意:对于任何来自python的人(像我一样),看起来像:use clojure-csv.core
类似于from closure_csv import *
,这在python中也是不好的做法。 (:require [clojure-csv.core :refer [parse-csv]])
与from clojure_csv import parse_csv
使用lein run
运行项目。我的输出是
$ lein run
([1 2 3 hello world])
我希望有所帮助!
答案 1 :(得分:1)
您可以从Clojars下载/使用它。
Clojars链接: https://clojars.org/clojurewerkz/buffy
要将其与Leiningen一起使用,请将其添加到您的依赖项(在project.clj文件上):
[clojurewerkz/buffy "1.0.0-beta4"]
之后,您可以从项目根文件夹运行lein deps
以下载依赖项。
要直接从Github repos使用依赖项,您可以查看:https://github.com/tobyhede/lein-git-deps
答案 2 :(得分:1)
使用lein(这是Clojure的构建工具),你有一个project.clj文件。如果你做lein new project-name
,你会得到一个名为“project-name”的新项目,其中包含一个project.clj文件。查看该文件,您将在其中看到一个:dependencies条目,如下例所示:
:dependencies [[org.clojure/clojure "1.5.1"]]
你必须做的就是包含buffy,查看他们的github网站,找出要使用的版本,然后将其添加到:dependecies列表:
:dependencies [[org.clojure/clojure "1.5.1"]
[clojurewerkz/buffy "1.0.0-beta3"]]
现在您只需执行lein deps
即可下载依赖项,并在编写代码lein run
后实际运行它。
仔细阅读lein并查看其sample project.clj文件,以便更好地了解如何使用clojure。