159

我正在开发一个依赖 X 的项目。X 反过来又依赖于 Y。

我曾经在项目的 pom.xml 中明确包含 Y。然而,它并没有被使用,为了让事情更干净,我把它作为依赖添加到 X 的 pom 中。X 被标记为发布依赖项。

问题是从我的项目的 pom 中删除 Y 并将其添加到 X 的 pom 后,我的项目没有在mvn -U clean package. 我知道 -U 更新快照但不知道发布。

那么,在不删除 ~/.m2/repository 目录的情况下,如何强制重新下载 X 的 pom?此外,我尝试运行dependency:purge-local-repository,它也没有工作。

4

13 回答 13

203

您不能让 Maven 重新下载依赖项,但您可以做的是清除使用错误下载的依赖项mvn dependency:purge-local-repository

请参阅:http ://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

这会查找当前项目的所有传递依赖项的列表,删除它们,然后重新下载它们。如果你想在每次构建中运行它,你甚至可以将它作为插件添加到你的 pom 中。

于 2011-12-24T13:44:38.493 回答
61

我刚刚删除了我的 ~/.m2/repository 并强制重新下载;)

于 2013-08-13T21:31:44.570 回答
59

基于 Ali Tokmen 的回答。我设法使用以下命令强制删除单个特定的本地依赖项:

mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils

有了这个,它从我的 .m2/repository 中删除,并且当我继续运行时utils它总是重新下载JAR 依赖项。如果您想要更多程序化的东西,也可能会看到该选项。utilsmvn clean install-Dinclude=...

于 2016-05-17T08:10:40.033 回答
52

我认为以下命令可能会对您有所帮助!


mvn -U clean install
于 2015-10-29T06:08:39.563 回答
17
mvn clean install -U

-U 表示强制更新依赖项。

如果您想在没有 clean 或 -U 的情况下更新单个依赖项,您可以将其从本地存储库中删除,然后构建。

于 2016-08-02T14:19:46.860 回答
16

项目右键单击-> Maven -> 更新项目并选中屏幕截图中的复选框。它也会更新版本:)

在此处输入图像描述

于 2015-04-14T14:30:06.510 回答
9

如果您知道 的组 id X,则可以使用此命令重新下载所有X及其依赖项

mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x

它与建议使用的其他答案做同样的事情dependency:purge-local-repository,但它只删除并重新下载与X.

于 2018-08-21T21:58:32.903 回答
7

当您将它添加到 X 时,您应该增加 X 的版本号,即 X-1.2
然后 X-1.2 应该已经安装/部署,并且您应该将项目对 X 的依赖更改为依赖于新版本 X-1.2

于 2011-10-31T21:51:09.800 回答
5

如果您真的想强制下载所有依赖项,可以尝试重新初始化整个 maven 存储库。就像本文已经描述的那样,您可以使用:

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
于 2014-02-27T08:46:50.097 回答
3

只需删除 ~/.m2/repository...../actual_path 无效 LOC 所在的位置,因为它会强制重新下载已删除的 jar 文件。不要删除整个存储库文件夹,而是删除错误所在的特定文件夹。

于 2018-09-18T06:08:59.537 回答
-1

删除~/.m2/repository将解决您的问题。但是,如果您仍然需要保留旧的~/.m2/repository,您可以暂时更改 Maven 本地路径。

如果您正在使用 IntelliJ,只需转到 Maven 设置并将本地存储库路径更改为其他位置。您可能需要勾选附近的覆盖复选框。

在此处输入图像描述

于 2020-05-18T05:36:34.967 回答
-3

上面提供的大多数答案都可以解决问题。

但是,如果您使用 IntelliJ 并希望它自动为您修复它,请转到 Maven 设置。

构建、执行、部署 -> 构建工具 -> Maven

在此处输入图像描述

禁用脱机工作

启用始终更新快照(需要时切换)

于 2018-01-11T00:18:45.080 回答
-3

转到构建路径...删除您添加的现有maven库...单击添加库...单击maven托管依赖项...然后单击maven项目设置...检查解决maven依赖项复选框..它将下载所有maven依赖

于 2016-11-08T02:52:15.993 回答