公网Maven依赖存在却无法下载的原因及非本地安装解决方法
解决Maven commons-dbcp:1.4依赖下载失败(缓存导致不重试)的问题
这种因为本地缓存了失败记录,导致Maven死活不重试下载的情况我碰到过好多次,完全不用手动装jar包就能解决,给你几个靠谱的办法:
1. 手动删除本地仓库的失败缓存文件
Maven会把下载失败的状态存在.lastUpdated后缀的文件里,只要删掉这些文件,它就会重新尝试下载。
- 找到本地仓库中commons-dbcp:1.4的路径:
- Windows:
C:\Users\你的用户名\.m2\repository\commons\dbcp\commons-dbcp\1.4 - Linux/macOS:
~/.m2/repository/commons/dbcp/commons-dbcp/1.4
- Windows:
- 删除该目录下所有以
.lastUpdated结尾的文件,还有可能存在的resolver-status.properties状态文件 - 重新执行
mvn clean install或者mvn dependency:resolve即可
2. 使用Maven强制更新命令
直接在项目根目录执行以下命令,-U参数会强制Maven忽略本地缓存,重新检查并下载所有依赖(包括稳定版本,不仅仅是快照):
mvn clean install -U
这个方法最简单,不用手动找文件,亲测大部分情况都能直接解决问题。
3. 修改Maven配置,强制每次检查依赖
如果你不想每次都敲-U,可以修改settings.xml(一般在~/.m2/目录下),配置Maven每次构建都去远程仓库检查依赖状态:
在<profiles>标签内添加如下配置:
<profile> <id>force-check-updates</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> <updatePolicy>always</updatePolicy> </repository> <!-- 如果你项目里用了其他公网仓库,同样给它们加上<updatePolicy>always</updatePolicy> --> </repositories> </profile>
这样Maven每次构建都会主动去远程仓库确认依赖是否可用,不会再依赖本地的失败缓存。
4. 确认远程仓库包含该依赖
有时候可能是你配置的公网仓库没有同步commons-dbcp:1.4,这时候可以在项目的pom.xml中临时添加中央仓库的配置,优先从官方仓库拉取:
<repositories> <repository> <id>maven-central</id> <url>https://repo.maven.apache.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
官方中央仓库肯定有这个依赖,这样能绕过可能有问题的镜像仓库。
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

