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

问题描述 投票:13回答:3

使用以下说明:

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的快照/缓存?

maven jar clojure leiningen
3个回答
31
投票

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

$HOME/.m2/repository

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

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

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

# force update of snapshots before starting repl
$ lein -U repl

9
投票

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

lein -U jar

0
投票

删除.m2文件夹。它会重新获取。

© www.soinside.com 2019 - 2024. All rights reserved.