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

时间:2012-05-08 18:10:39

标签: maven jar clojure 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的快照/缓存?

3 个答案:

答案 0 :(得分:30)

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

$HOME/.m2/repository

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

所以删除你当地的maven repo中的jar,你应该强制(重新)下载。

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

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

答案 1 :(得分:9)

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

lein -U jar

答案 2 :(得分:0)

删除.m2文件夹。它将重新提取。