我正在开发一个依赖X的项目。反过来,X依赖于Y.
我曾经在我的项目的pom中明确地包含Y.然而,它没有被使用并且使事情变得更清洁,而是将它作为依赖项添加到X的pom中。 X被标记为版本依赖。
问题是,从项目的pom中删除Y并将其添加到X的pom后,我的项目没有在mvn -U clean package
上提取它。我知道-U更新快照但不更新版本。
所以,没有删除〜/ .m2 / repository目录如何强制重新下载X的pom?此外,我尝试运行dependency:purge-local-repository
,但它也无效。
答案 0 :(得分:137)
您不能让Maven重新下载依赖项,但您可以做的是清除使用mvn dependency:purge-local-repository
错误下载的依赖项
请参阅:http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
答案 1 :(得分:49)
我刚刚删除了我的〜/ .m2 /存储库并强制重新下载;)
答案 2 :(得分:33)
我认为以下命令可以帮助你!
mvn -U clean install
答案 3 :(得分:18)
感谢Ali Tokmen的回答。我设法使用以下命令强制删除特定的本地依赖项:
mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils
这样,它会从我的.m2 / repository中删除utils
,当我运行utils
时,它总是重新下载mvn clean install
JAR依赖项。
答案 4 :(得分:14)
项目右击 - > Maven - >更新项目 并选中屏幕截图中的复选框。它还将更新版本:)
答案 5 :(得分:7)
mvn clean install -U
-U表示强制更新依赖项。
如果你想更新没有clean或-U的单个依赖项,你可以从本地仓库中删除它然后构建。
答案 6 :(得分:6)
当你将它添加到X时,你应该增加X的版本号,即X-1.2
然后应该安装/部署X-1.2,你应该已经改变你对X的项目依赖性,以取决于新版本X-1.2
答案 7 :(得分:4)
如果您真的想强制下载所有依赖项,可以尝试重新初始化整个maven存储库。与已经描述的this article一样,您可以使用:
mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
答案 8 :(得分:1)
只需删除〜/ .m2 / repository ..... / actual_path无效的LOC即将到来,因为它会强制重新下载已删除的jar文件。 不要删除整个存储库文件夹,而是要从发生错误的位置删除特定的文件夹。
答案 9 :(得分:0)
上面提供的大多数答案都可以解决问题。
但是如果您使用IntelliJ并希望它自动为您修复它,请转到Maven设置。
构建,执行,部署 - >构建工具 - >行家
禁用脱机工作
启用始终更新快照(需要时切换)
答案 10 :(得分:0)
如果您知道X
的组ID,则可以使用此命令重新下载所有X
及其相关性
mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x
它与使用dependency:purge-local-repository
提出的其他答案具有相同的作用,但是它只会删除并重新下载与X
相关的所有内容。
答案 11 :(得分:0)
删除~/.m2/repository
将解决您的问题。但是,如果仍然需要保留旧的~/.m2/repository
,则可以临时更改Maven本地路径。
如果您正在使用IntelliJ,请转到Maven设置,然后将本地存储库路径更改为其他位置。您可能需要勾选附近的替代复选框。
答案 12 :(得分:-2)
转到构建路径...删除已添加的maven库...单击添加库...单击maven托管依赖项...然后单击maven项目设置...检查解决maven依赖项复选框..&# 39; ll下载所有maven依赖项