【转】解决IDEA中Maven依赖包导入失败报红问题(总结最有效几种解决方案)

目录

方案1(本人平时遇到这问题的常规操作)

方案2

特殊情况

方案3

方案4

方案5

方案6

方案7

方案8

 Maven踩坑集合

1. 若出现在 .pom 文件 明确已经删除某个依赖,但是启动还是加载了该jar包情况,可以检查是否还有依赖该jar包:

2. Maven打包缺少 application.yml 等配置文件

     处理方式:

3. maven配置多个私库后,获取某个依赖报找不


  • 20220823更新:
  1. Maven踩坑集合

问题描述:

真的,说来话长,这应该是我花最多时间去解决关于Maven依赖包导入的问题,以前粘贴复制导入,自动下载成功了, 这次怎么搞,怎么让他自动下载都还是红红的一片, 花了大半天,各种尝试,只为搏得问题解决!!!

imgimg

真的看着都难受, 但是, 终于, 还是让我搞定了,这次让我汇总所有最有可能解决这依赖问题的方法,下次遇到这种问题, 真的要说再见了 , 话不多开,开货!!!

方案1(本人平时遇到这问题的常规操作)

当一开始遇到导入的依赖报红了,直接把那段刚导入的对应依赖删了,然后又重新导入,它自动会刷新, 然后没一会就好了, 正常来说是立刻见效的

这次就哦奥了,我这次这办法来回十几次没法解决, 如果解决不了的小伙伴, 看下一个噢!!

方案2

在IDEA右边点击Maven会弹出一个框

在这里插入图片描述

然后狂点击刷新按钮,让它自动它导入下载更新

在这里插入图片描述

或者这样刷新重新导入也可以

在这里插入图片描述

特殊情况

        查看maven仓库(如:C:\Users\a\.m2\repository\**),发现依赖保存在lastUpdate状态,并且没有jar包。

        

         处理方式:

                1. 删除.pom.lastUpdate文件,并如上点击刷新依赖重新导入

                2. (打包阶段)在IDEA终端中输入maven命令:

mvn clean install -e -U

-e详细异常,-U强制更新

以上两种,正常情况下, 只要尝试几次,都可以解决,除非, 真的识别找不到没法解决,

这时, 别慌,有我在,没意外,看下一个噢!!!

方案3

还有一种问题情况是这样的,导入了依赖没有这个jar

在这里插入图片描述

然后,就是这样操作的 去寻找 Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Ignored Files

在这里插入图片描述

这个默认不勾选,如果勾选了,要取消了 ,(如果有勾选的人记得:重新去使用方案1和2重新去导入,刷新试试 )

当然, 这对我没什么帮助,但是要记录一下

方案4

需要去配置一下设置, 让它自动下载,如下图配置:

位置: Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Importing,如下图:

在这里插入图片描述

然后重新去使用方案1和2重新去导入,刷新试试 , 或许对你有帮助

方案5

这种也是配置的,要是没勾选了,包死活也下载不了

位置: Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Work offline

在这里插入图片描述

方案6

2019版的IDEA,要注意maven版本兼容问题

2019.3版本的IDEA用3.6.1的maven兼容不了,换了最新版的好使。

我用的是3.3.9版本,挺好的,没问题,如果实在没办法的,可以试试换maven版本

(当然,也别慌,重头戏在后面,先把后面一种方案看完,说不定,就搞定了呢,嚯嚯!!)

在这里插入图片描述

方案7

在此前,提供一个小工具,只要运行可以自动检测删除你下载未完整的依赖文件,

首先创建一个txt文档,复制以下代码

1

2

3

4

5

6

7

set REPOSITORY_PATH=E:\repository

rem 正在搜索...

for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (

 del /s /q %%i

)

rem 搜索完毕

pause

记得路径修改为你自己所在依赖包的位置

然后把.txt文件后缀改为.bat ,双击运行即可跳出窗口去自动删除, 然后可以去重新让它下载依赖试试(最好结合下一个方案最稳)

方案8

接下来,真的,是重头戏,这也是我的解决的方案,感觉小伙伴们用了,肯定屡试不爽

首先.最好结合使用方案7把你存在的不完整的依赖文件删除,

首先.在pom.xml的导入包所在处 鼠标右键找到Maven,然后点击Open"settings.xml"

在这里插入图片描述

会显示这个页面

在这里插入图片描述

然后在settings.xml中配置远程仓库, 复制以下配置

1

2

3

4

5

6

7

8

9

<mirrors>

  <mirror>

   <id>nexus</id>

   <name>internal nexus repository</name>

   <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->

   <url>http://repo.maven.apache.org/maven2</url>

   <mirrorOf>central</mirrorOf>

  </mirror>

 </mirrors>

我刚开始,弄到这个配置,直接复制到settings.xml中,让它加载,还以为没用,原来一时眼瞎,它这文件自带注解太多,没有向下翻,直接复制顶部,错误示范如下图

在这里插入图片描述

正确配置:

要耐心向下翻到一百多行,找到 复制在其中,然后,我这准备的配置时带有的,记得删了,不然就有两个

在这里插入图片描述

然后,你回到pom.xml中试试,行不行,

注意: 如果不行则把url中使用http 可能不好用,换成https进行尝试

我试了一下,这种配置好像没完全解决我的问题,所以,我还准备了还有一种配置,完全解决了我的问题,

同样复制一下配置到settings.xml中的里

1

2

3

4

5

6

<mirror>

  <id>nexus-aliyun</id>

  <mirrorOf>*</mirrorOf>

  <name>Nexus aliyun</name>

  <url>http://maven.aliyun.com/nexus/content/groups/public</url>

 </mirror>

在这里插入图片描述

然后回到pom.xml文件看,刷新一下,或者它自动正在下载相应的依赖,真的是,看到,它咻咻的,在那动来动去的下载

别提我多高兴了,我想这次准成,下了好一会,果然,成功了,开心!!!啊哈哈(如图)

在这里插入图片描述

然后就没有报红了,但是,我打开maven看,还有个别爆红,可能没下载全(当时忘了截图)

办法:只要使用方案1和2, 把依赖删了,重新复制进去,重新导入刷新依赖, 让它自动补全,就完美了

如图,一点报错没有

在这里插入图片描述


 Maven踩坑集合

1. 若出现在 .pom 文件 明确已经删除某个依赖,但是启动还是加载了该jar包情况,可以检查是否还有依赖该jar包:

若存在多余的包,删除

确定后还需要 Reimport 重新导入一下

2. Maven打包缺少 application.yml 等配置文件

     处理方式:

  1.  pom.xml中添加
<build>
 <resources> 
  <resource> 
        <directory>src/main/resources</directory> 

        <includes> 

            <include>**/*.properties</include> 
    
            <include>**/*.yml</include> 

            <include>**/*.xml</include> 

            <include>**/*.conf</include> 

        </includes> 

        <filtering>false</filtering> 

    </resource>
   </resources> 
</build>

如项目属于多环境(开发+测试+线上)

1.1  在idea - maven - Profiles 勾选 唯一的环境

 1.2 pom 文件增加指定环境

<activation>

    <activeByDefault>true</activeByDefault>

</activation>

        2. 暴力复制

3. maven配置多个私库后,获取某个依赖报找不到

异常信息部分:

        Caused by: org.apache.maven.model.resolution.UnresolvableModelException: 

                Could not find artifact xxx(依赖项) in xxx(仓库名与地址) 

 到私库中检查报错信息中该仓库位置,是否存在该依赖以及对应的版本。

错误原因:在maven中配置了两个私库位置,依赖的jar包同时在两个仓库(下文以仓库1、仓库2代表)都有,但是版本不同,要引入依赖的版本存在与仓库2中,但是在 C:\Users\a\.m2\settings.xml 中配置的仓库顺序为 【仓库1-----> 仓库2】,导致maven从仓库1中拉取jar包,但该仓库里面没有该版本存在,故报not find。

解决:

        1. 调换 settings.xml 中配置仓库的顺序【可联想pom.xml的依赖配置,也是有顺序从上到下按顺序导入的】

        2. 相同的jar不同的版本整合到同个仓库中

  • 31
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值