如何强制lein deps重新获取本地jar/libs

hir*_*ist 13 jar clojure maven leiningen

使用以下说明:

http://www.pgrs.net/2011/10/30/using-local-jars-with-leiningen/

我在本地存储库中安装了一些本地jar.

当我想更新项目中的jar时,我将jar重新安装到存储库中,然后运行lein deps.我发现不知何故,jar在我的项目中没有更新.即使我rm -rf libs文件夹中的所有内容,也不会拾取新的jar.我能够让它工作的唯一方法是更改​​jar的名称.

它有点奇怪,因为即使我删除了旧jar的所有痕迹(据我所知),这也会发生 - lein是否隐藏了libs的快照/缓存?

sw1*_*1nn 31

Leiningen使用maven进行依赖管理.Maven默认将其repo存储在

$HOME/.m2/repository
Run Code Online (Sandbox Code Playgroud)

在leiningen版本2之前,将依赖项复制到<projecthome>/lib,但版本2及更高版本构建直接指向存储库的类路径.

因此,删除本地maven仓库中的jar,你应该强制(重新)下载.

或者,知道对于快照依赖项,maven将每天只检查一次新版本的快照(默认情况下),这很有用. 在maven中,您可以使用-U标志强制它.我不认为莱宁根会揭露这一点,但你可以.......(但请参阅巴里 - 沃克的回答)

# force update of snapshots before starting repl
$ lein -U repl
Run Code Online (Sandbox Code Playgroud)


Bar*_*ark 9

lein2中,您可以使用-U标志,例如:

lein -U jar
Run Code Online (Sandbox Code Playgroud)