maven--强制使用远程仓库的新依赖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven--强制使用远程仓库的新依赖相关的知识,希望对你有一定的参考价值。


简介

        本文介绍如何更新依赖(使用远程仓库的依赖)。

问题描述

        项目A依赖项目B,此时项目A可以正常构建。别人修改项目B,并将B项目Deploy到私服,我在本地用IDEA构建项目A,构建失败。

原因分析

        编译项目A时,先在本地maven仓库中寻找项目B,如果找到就用本地maven仓库的依赖,如果本地maven仓库没有找到,才会去远程仓库拉取。所以构建A时,老的jar没有新版本中新增的内容,导致编译出错。

解决方案

有效的方案

方案1:删除本地项目B的依赖

方法

用IDEA找到依赖在maven仓库中的位置,然后手动删除那个文件夹。

详解

在IDEA里操作:File=> Project Structure=> Project Settings=> Libraries

maven--强制使用远程仓库的新依赖_servlet

maven--强制使用远程仓库的新依赖_远程仓库_02

方案2:将updatePolicy改为always

更改settings.xml,将updatePolicy改为always。

<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>

方案3:升级版本号

方法

将项目B的版本号升级,项目A也修改为新版本号。

详解

新的版本号会在远程仓库生成新的文件,本地仓库会重新下载。

无效的方案

以下方法我都试过,没用!

方案1:命令行更新依赖

mvn clean install -U
  • -U,–update-snapshots
  • Forces a check for missing releases and updated snapshots on remote repositories

方案2:命令行删除本地依赖

mvn dependency:purge-local-repository -DmanualInclude=groupId:artifactId


以上是关于maven--强制使用远程仓库的新依赖的主要内容,如果未能解决你的问题,请参考以下文章

[Maven实战]仓库(本地仓库,远程仓库,镜像)

Maven远程仓库:pom依赖以及jar包下载

Maven配置远程仓库

解决 maven 远程仓库中的依赖死活都下载不了的方法

Maven详解之仓库------本地仓库远程仓库

maven是怎么判断包在本地仓库和远程仓库哪个是新的