使用Maven强制重新下载版本依赖性

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

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

我曾经明确地将Y包含在我项目的pom中。然而,它没有被使用并且使事情变得更清洁,而是将它作为依赖项添加到X的pom中。 X被标记为发布依赖项。

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

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

maven-2 maven dependency-management maven-dependency-plugin
13个回答
138
投票

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

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


0
投票

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

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

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

enter image description here

禁用离线工作

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


0
投票

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

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

它与使用dependency:purge-local-repository提出的其他答案完全相同,但它只删除并重新下载与X相关的所有内容。


-2
投票

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


49
投票

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


34
投票

我认为以下命令可以帮助你!


mvn -U clean install

18
投票

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

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

有了这个,它从我的.m2 / repository中删除了utils,当我运行utils时,它总是重新下载mvn clean install JAR依赖项。


14
投票

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


7
投票
mvn clean install -U

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

如果要更新单个依赖项而不使用clean或-U,可以将其从本地存储库中删除,然后进行构建。


6
投票

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


4
投票

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

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install

2
投票

只需删除〜/ .m2 / repository ..... / actual_path,其中无效的LOC即将到来,因为它强制重新下载已删除的jar文件。不要删除整个存储库文件夹,而是删除错误发生的特定文件夹。

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