如何强制更新Maven依赖源码并重新下载损坏的源码JAR包?
如何重新下载损坏的Maven依赖源码JAR包
碰到大量损坏的Maven源码JAR包确实挺闹心的,我来给你分享几个实用的解决办法,帮你重新拉取完整的源码:
方法一:批量清理所有源码包后重新下载
如果不确定具体哪些源码包损坏,最直接高效的方式就是先清空本地仓库里所有已下载的源码JAR,让Maven重新拉取一遍。
不同系统的清理命令:
Windows(PowerShell):把下面命令里的
你的Maven仓库路径替换成你实际的路径(比如默认的C:\Users\你的用户名\.m2\repository),执行后会递归删除所有带-sources.jar后缀的文件:Get-ChildItem -Path "你的Maven仓库路径" -Filter "*-sources.jar" -Recurse | Remove-Item -ForceLinux/macOS(终端):同样替换路径(默认是
~/.m2/repository),用find命令批量删除:find /你的Maven仓库路径 -name "*-sources.jar" -type f -delete
清理完成后,回到你的项目根目录,重新执行源码下载命令:
mvn dependency:sources
这时候Maven会重新从镜像源拉取所有依赖的完整源码包。
方法二:针对特定损坏的依赖单独处理
如果你能确定哪些依赖的源码包损坏,可以只清理对应目录下的文件,然后单独拉取该依赖的源码,避免重复下载所有内容。
- 找到本地仓库中对应依赖的目录,删除里面的
-sources.jar文件,以及对应的校验文件(比如.sha1、.md5)——这些校验文件如果存在,Maven会认为本地包是合法的,不会重新下载。 - 执行以下命令单独拉取该依赖的源码(把
groupId:artifactId替换成你需要的依赖坐标):
比如要重新下载Guava的源码,就用:mvn dependency:sources -Dincludes=groupId:artifactIdmvn dependency:sources -Dincludes=com.google.guava:guava
额外小贴士
- 如果重新下载后还是出现损坏,大概率是镜像源的问题,建议检查你的Maven
settings.xml,切换到官方镜像或者更稳定的国内镜像源。 - 执行源码下载命令时可以加上
-U参数,强制Maven更新依赖元数据,避免使用缓存的旧信息:mvn dependency:sources -U
内容的提问来源于stack exchange,提问作者BenMansourNizar
相关产品推荐
相关产品推荐

