我正在学习Clojure,但并没有为每个小代码片段构建整个项目,我只是将它们放入REPL中。偶尔会有一些我正在探索的代码片段需要依赖项(通常是clojure.contrib中的某些内容)。
我知道将这些依赖项下载到我的计算机上的唯一方法是创建一个空的leiningen项目,将依赖项添加到project.clj中,并运行lein deps
。
我能否以全局方式、在项目之外下载库?如果我真的非常不想这样做,为什么?
我有一个小项目,用于测试代码片段和回答SO问题,并且不断添加依赖项。这个项目的project.clj包括Pomegranate作为一个依赖项,然后使得动态加载其他依赖项变得非常容易:
(use '[cemerick.pomegranate :only (add-dependencies)])
(add-dependencies :coordinates '[[my-dependency "1.2.3"]])
试试lein-try吧。这是我写的一个leiningen插件,它让你可以在命令行上输入像lein try [my-dependency 1.0.0]
或者lein try my-dependency
这样的命令,并进入一个REPL环境,其中该依赖项可用。
(use '[leiningen.exec :only (deps)])
(deps '[[clj-time "0.8.0"]])
~/.lein/profiles.clj
文件中:{:user {:plugins [[lein-exec "0.3.4"]]}}
,然后在您的clj文件上运行lein exec [example.clj]
将自动下载所需依赖项。如果您是新手,请使用此方法快速运行代码,这是一个不需要项目的好方法。
java -cp clojure.jar:some-lib-clj.jar clojure.main
3) 为什么拥有一个临时的Leiningen项目会有什么不好的影响?