15

使用以下说明:

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 是否隐藏了库的快照/缓存?

4

3 回答 3

34

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

$HOME/.m2/repository

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

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

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

# force update of snapshots before starting repl
$ lein -U repl
于 2012-05-08T18:44:57.537 回答
13

2 lein、可以使用-Uflag,eg:

lein -U jar
于 2014-08-02T00:43:35.523 回答
0

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

于 2019-04-01T14:44:24.463 回答