我正在开发一个依赖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重新下载依赖项,但您可以做的是清除使用mvn dependency:purge-local-repository
错误下载的依赖项
见:http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
如果您知道X
的组ID,则可以使用此命令重新下载所有X
及其依赖项
mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x
它与使用dependency:purge-local-repository
提出的其他答案完全相同,但它只删除并重新下载与X
相关的所有内容。
转到构建路径...删除现有的maven库你添加...单击添加库...单击maven托管依赖项...然后单击maven项目设置...检查解决maven依赖项复选框..将全部下载maven依赖
我刚刚删除了我的〜/ .m2 / repository并强制重新下载;)
我认为以下命令可以帮助你!
mvn -U clean install
感谢Ali Tokmen的回答。我设法使用以下命令强制删除特定的本地依赖项:
mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils
有了这个,它从我的.m2 / repository中删除了utils
,当我运行utils
时,它总是重新下载mvn clean install
JAR依赖项。
项目右键单击 - > Maven - >更新项目,然后选中屏幕截图中的复选框。它也将更新版本:)
mvn clean install -U
-U表示强制更新依赖项。
如果要更新单个依赖项而不使用clean或-U,可以将其从本地存储库中删除,然后进行构建。
当你将它添加到X时,你应该增加X的版本号,即X-1.2 然后应该安装/部署X-1.2并且您应该已经更改了对X的项目依赖性,以取决于新版本X-1.2
如果您真的想强制下载所有依赖项,可以尝试重新初始化整个maven存储库。就像已经描述的this article一样,你可以使用:
mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
只需删除〜/ .m2 / repository ..... / actual_path,其中无效的LOC即将到来,因为它强制重新下载已删除的jar文件。不要删除整个存储库文件夹,而是删除错误发生的特定文件夹。