美文网首页
Maven无法拉取本地已有依赖

Maven无法拉取本地已有依赖

作者: Nzkalhbxx | 来源:发表于2022-12-01 17:18 被阅读0次

当使用Idea或者其他开发工具使用maven获取依赖时,有时会发现明明本地存在的依赖,maven却自动去远程仓库中拉取?且此时远程仓库不可用(内网或私服宕机),那么项目就直接拉取依赖失败,导致无法正常开发。
此时可能的场景是:
本地的依赖是直接通过拷贝而来,而不是本地原生通过从配置的远程仓库中拉取而得。那么此时依赖的坐标中,应该会存在一个_remote.repositories文件,用于描述当前的jar是从哪个远程仓库(或者镜像)获取的。
如果maven的settings.xml文件中配置了远程仓库(或者镜像),且生效的仓库的id(或镜像id)跟_remote.repositories中记录的不一样时,此时maven会认为本地存在的这个依赖不是自己需要的,那么就会默认从指定的远程仓库(或镜像)中去拉取需要的依赖。
所以就会发生明明本地有这个依赖,但是导包时却发现maven还是去远程仓库(或镜像)去拉取依赖。当远程仓库(或镜像)不可用时,maven直接报错。
解决的方法是:
进去本地仓库目录
删除本地仓库下的所有_remote.repositories文件,可以使用命令执行批量删除

Windows:

for /r %i in (*.repositories) do del %i

删除本地仓库目录下所有的.lastUpdated文件
for /r %i in (*.lastUpdated) do del %i

Linux:

find .  -name "*.lastUpdated" | xargs rm -rf
find .  -name "*repositories" | xargs rm -rf

然后再重新执行导入依赖,如果修改了settings.xml文件,建议重启idea或者重新选择一下maven的配置文件,点击应用再更新回去。因为idea可能会缓存settings.xml的内容。

注意:如果settings.xml中配置了多个mirror镜像,且每个镜像的mirrorOf都是*(即表示该镜像代理了所有repositories,所有的拉取请求都会通过这个镜像去获取),那么只有第一个mirror会生效,后面的直接忽略(即使第一个镜像mirror不可用的状态下)

相关文章

  • 安装Jar包到Maven本地仓库

    一些第三方依赖组件不提供maven,但是项目又要用到maven打包。所以本地依赖包最好还是安装到本地maven仓库...

  • library-modularization 2020-11-

    传递依赖的问题 如果app通过maven依赖library,library本地依赖database和ui-comp...

  • Maven 依赖

    ① Maven 解析依赖信息时,首先会到本地仓库中查找依赖的 Jar 包 对于本地仓库中没有的依赖,就会去中央仓库...

  • Maven:手动添加第三方包到本地pom

    手动添加本地jar包至maven项目 这周在使用maven创建HiveUDF工程时,依赖的一个jar包是本地的,在...

  • Maven 从仓库解析依赖的机制

    当本地仓库没有依赖构件的时候,Maven 会自动从远程仓库下载;当依赖版本为快照版本的时候,Maven 会自动找到...

  • Dubbo视频教程--基础篇--第14节--持续集成篇--Mav

    持续集成篇--Maven私有库和本地库的安装与配置 如果构建的Maven 项目本地仓库没有对应的依赖包,那么就会去...

  • Android 杂记

    1.TypedValue 用于转换标准尺寸 2.依赖本地aarGradle中 3.本地Maven仓库 4.Grad...

  • spring boot实战之redis

    1、 添加maven依赖 2、 添加redis配置 本地(单点redis) 在application-local....

  • Maven依赖本地jar包

    概述 上下文背景如下: war包项目:原理上其他项目也OK,但是暂时没有测试。 依赖本地包:出于安全考虑或者没有本...

  • [maven]本地依赖无法打包

    情况 在项目中的lib目录下引入了三方jar包,打包启动后报错无法找到该jar包 解决 在pom.xml中增加 ...

网友评论

      本文标题:Maven无法拉取本地已有依赖

      本文链接:https://www.haomeiwen.com/subject/umzefdtx.html