解决idea项目里jar依赖各种报错画红线问题

手动导包置顶:
如果本地库有包,但是导入不到项目里,可以执行maven命令将包导入:
例如:jcifs-ext-0.9.4.jar从公共仓库(https://mvnrepository.com/)中下载下来,放到maven库中,但是在idea项目中引入pom却一直是红色的,导入不进去

<dependency>
            <groupId>org.samba.jcifs</groupId>
            <artifactId>jcifs-ext</artifactId>
            <version>0.9.4</version>
        </dependency>

此时可以将jcifs-ext-0.9.4.jar放到任意路径,如:D:\Software\0.9.4\jcifs-ext-0.9.4.jar
然后在idea中的命令窗口输入命令:
mvn install:install-file -Dfile=D:\Software\0.9.4\jcifs-ext-0.9.4.jar -DgroupId=org.samba.jcifs -DartifactId=jcifs-ext -Dversion=0.9.4 -Dpackaging=jar
在这里插入图片描述
-Dfile=你手动下载jar包的全路径
-DgroupId=该jar包的groupId
-DartifactId=该jar包的artifactId
-Dversion=该jar包的version
-Dpackaging=该文件为jar包。

此时,项目即成功引入此包

大杀器置顶
1、用maven命令编译一下项目,很容易定位到哪个jar有问题,并且有报错原因
2、有时候手动去中央仓库下的高版本jar,导入项目失败,反正我是一直刷新maven后,它自己就导进去了(存疑)
3、私服地址为https,且ssl证书过期导致jar包下不下来,

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

执行mvn install -X可以看到详细信息,
在这里插入图片描述

解决方法:mvn命令打包时加上不校验ssl的语句:

mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

常用的话可以配置到idea里:
在这里插入图片描述
在这里插入图片描述

可以的话,把https的s手动干掉,另辟蹊径o(* ̄︶ ̄*)o

这才是正文:
1、首先查看你设置的setting文件是不是正确(有时候新建项目会自动设置成c盘默认文件)以及你的项目引入maven库是否正确。

2、有些新增的pom依赖是你本地库没有的,这时需要在你的setting文件里配置好从你们公司的 私服上下载jar的地址,以及从公共仓库下载jar的地址,公共仓库不配置也没事,默认自带,前提是id为central不能被占用,然后重新去Reimport即可自动下载jar到你本地仓库(注意有些公司内网会连接不上公共仓库,如果是第一次往本地库下载jar,Reimport不自动下载,使用maven的install等打包命令去下载)。
在这里插入图片描述

PS:

1、有时候一个包依赖错误可能会导致其他很多依赖都画红线,这时候你可以注释掉所有pom依赖,然后几个几个的放开注释,去找到那个出错的包(肯定是你本地maven库没有这个jar,或者导入idea失败)
2、可能因为内网限制,idea运行pom文件时连不通公共仓库导致异常,明明你本地库有这个jar,但是pom引了依赖却没有加载的情况,导致有些红色波浪线并不影响项目启动

其他: 我遇到的引包的坑
项目A引入了项目B的jar包(项目B是个父子项目,父项目引用mybatis-plus的包及版本,子项目里只引入mybatis-plus的包会自动继承父项目引入的包的版本),然后在项目A调用mp里的方法的时候始终报no method~~~~,很是奇怪,最后发现项目A里的External Libraries里引入的mp的版本并不是项目B引入的mp的版本,但是看项目B确实引入的是正确的mp的版本,此时感受到无比的蛋疼
更奇怪的是同一个项目有的同事调用就没问题,然后要过他们本地库的项目B的jar包导入依然不好使,double蛋疼。
最终是重新编译了一下项目B的父项目,然后重新打包了一下项目B的子项目,终于破案了(应该是之前父项目引用了低版本,后来改成了高本版,不编译只打子项目的包的话并没有改变父项目引入高本版的引用)

结语:当你遇到问题的时候,不要怀疑,就是有问题,解决它

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值