IDEA中使用本地maven仓库,避免从线上仓库拉取失败导致无法打包问题

一.问题情况

项目存在部分依赖无法从线上镜像下载,需要下载后使用本地maven仓库,但是在执行构建,打包等操作时,存在报错问题

Failed to read artifact descriptor for com.***.***.:***:jar:V1.0

大概意思就是,没有办法从指定的线上仓库找到对应的依赖,出现这种情况一般是由于直接从别人那拷贝过来的依赖包中存在下载的版本控制文件,里面配置了默认获取的优先级,网络地址大于本地仓库

二.解决思路

经过检查之后,确定需要使用的依赖都存在于本地仓库中,但是仍然报错,显示在线上仓库中没有找到对应的jar
所以我们要做的就思路明确,让maven在执行操作时,先从本地获取依赖而不是从网络仓库获取

三.解决办法

1. maven设置本地仓库

(1) 配置maven设置中的本地依赖仓库位置
打开设置页面
在这里插入图片描述
这里可以根据设置IDEA中使用的maven版本以及maven配置文件位置,maven本地仓库位置等。
可以根据需要勾选:
Work Offline线下模式
Always update snapshots 数据快照(自动更新仓库信息)
(2)在maven 的 settings文件中配置文件源

 <!--阿里maven源时配置-->
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>
        http://maven.aliyun.com/nexus/content/groups/public/
      </url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <!--使用本地源时配置-->
    <mirror>
      <id>central</id>
      <mirrorOf>*</mirrorOf>
      <name>central</name>
      <!--刚刚选定的maven本地仓库位置-->
      <url>D:\maven 3.9.3\repository</url>
    </mirror>
<!-- 我的本地仓库位置 -->
  <localRepository>D:\maven 3.9.3\repository</localRepository>

(3)更新maven依赖,执行package操作,不出现报错即成功
检验结果

2. 在本地依赖中去除_remote.repositories配置文件

(1)在刷新maven依赖时查看缺失包名
(2)打开本地仓库对应依赖路径下的_remote.repositories文件

如果显示如下内容,说明你在下载依赖时,之前的配置是优先从阿里云远程仓库下载

junit-4.12.jar>alimaven=
junit-4.12.pom>alimaven=

有两种方法都可以达到我们优先使用本地仓库效果

  • 修改文件
junit-4.12.jar>=
junit-4.12.pom>=
  • 直接删除_remote.repositories文件

在这里插入图片描述

(3) 同上方法中(3)更新maven依赖,执行package操作,不出现报错即成功

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值