maven - 如何强制 lein deps 重新获取本地 jars/libs

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

最佳答案

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

$HOME/.m2/repository

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

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

或者,知道对于快照依赖项很有用,maven 每天只会检查一次快照的新版本(默认情况下)。在 maven 中,您可以使用 -U 标志强制它。我认为 leiningen 不会公开这一点,但你可以这样做......(但请参阅 barry-wark 的回答)
# force update of snapshots before starting repl
$ lein -U repl

关于maven - 如何强制 lein deps 重新获取本地 jars/libs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504076/

相关文章:

Clojure "look-and say"序列

design-patterns - 在 Clojure 的宏中声明设计模式

maven - Apache Maven 错误 : Could not transfer artifact org. apache.maven.plugins :maven-clean-plugin:pom: 2. 5 到中央

maven - 使用属性从 Maven 部署到 JFrog Artifactory

java - Maven 测试在终端上失败,但在 IntelliJ 中通过

java - IntelliJ IDEA 创建的 JAR 文件不运行

clojure - 在 clojure 中打印符号列表

java - 如何从包阶段排除 Maven 测试范围?

java - Onejar和资源加载

java - Tomcat war ,外部 JAR