让Leiningen在项目之外下载依赖项

7

我正在学习Clojure,但并没有为每个小代码片段构建整个项目,我只是将它们放入REPL中。偶尔会有一些我正在探索的代码片段需要依赖项(通常是clojure.contrib中的某些内容)。

我知道将这些依赖项下载到我的计算机上的唯一方法是创建一个空的leiningen项目,将依赖项添加到project.clj中,并运行lein deps

我能否以全局方式、在项目之外下载库?如果我真的非常不想这样做,为什么?


  1. 下载库JAR文件 2) java -cp clojure.jar:some-lib-clj.jar clojure.main 3) 为什么拥有一个临时的Leiningen项目会有什么不好的影响?
- noahlz
5
这可能不是您想要的,但也许这会让事情变得更容易,https://github.com/mtyaka/lein-oneoff - georgek
在我看来,这正是他想要的。 - noahlz
3个回答

2

我有一个小项目,用于测试代码片段和回答SO问题,并且不断添加依赖项。这个项目的project.clj包括Pomegranate作为一个依赖项,然后使得动态加载其他依赖项变得非常容易:

(use '[cemerick.pomegranate :only (add-dependencies)])
(add-dependencies :coordinates '[[my-dependency "1.2.3"]])

2

试试lein-try吧。这是我写的一个leiningen插件,它让你可以在命令行上输入像lein try [my-dependency 1.0.0]或者lein try my-dependency这样的命令,并进入一个REPL环境,其中该依赖项可用。


1
如果您正在使用lein-exec作为运行一次性脚本的方式,现在可以在脚本顶部添加一个小片段。添加:
(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]将自动下载所需依赖项。如果您是新手,请使用此方法快速运行代码,这是一个不需要项目的好方法。

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