Maven打包时下载一个不存在的版本号的依赖,导致下载失败
问题描述
今天在使用maven打包的时候,突然报了一个maputil-utils-4.0.0-20221122-20230105.112932-104.jar在maven仓库中找不到的问题。反复执行打包命令的时候出现了以下提示:
…was cached in the local repository, resolution will not be reattempted until the update interval of io.spring.repo.maven.release has elapsed or updates are forced
经过不懈努力与许多尝试,最终解决了这个问题,特此记录。
问题解决
问题出在目录中的多余文件,它们主要包含下载未成功的文件(.lastUpdated),远程仓库的配置信息(_remote.repositories),每次在更新maven项目的时候,每一个jar包路径下的_remote.repositories文件都会同setting.xml中设置的仓库地址id进行判断,如果没有匹配,会自动更新该jar包的相关文件,如果未联网则会出现jar无法发现的错误,导致即使jar存在,maven项目也无法使用该jar的情况。同时由于未联网,当下载失败,会生成后缀为.lastUpdated的文件。
所以首先删除生成的.lastUpdated以及_remote.repositories文件。
然后编辑maven-metadata-maven-public.xml文件,将框起来的版本号改为仓库中真实存在的版本号,或者是你本地有的版本号。
这里我选择改为本地已经下载好的版本,如下图所示:
重新打包,问题解决