解决idea中maven导包问题

首先安装好maven之后修改maven的配置文件,主要修改仓库地址信息,比如国外镜像拉取慢配置阿里云镜像仓库,以及如果公司有自己的maven私服的话,往往项目中会用到公司自己封装的jar包,那么也需要提前在maven配置文件中配置私有仓库的信息,否则maven拉取不到这个私有的jar包。

首先在idea中配置好maven,主要作用就是让idea使用我们自己安装的maven
在这里插入图片描述

1、git拉取的项目或者新建的maven/spring boot项目在idea中未标记为maven项目

首先正常情况下,我们拉取项目或者新建maven项目,idea识别到该项目为maven项目的时候会自动进行导包并且将项目标记为maven项目,当导包完毕之后我们可以看到项目的这几处变化,说明idea已经成功将该项目识别为maven项目
在这里插入图片描述
如果因为某些原因比如:网络问题,导致idea拉取包失败从而识别maven项目失败,那么我们可以如下方式手动触发idea识别maven项目:右击对应项目的pom.xml文件->Add as Maven Project,此时idea会将项目重新识别为maven项目等待完毕即可
在这里插入图片描述

2、maven项目导包失败

A、当idea已将项目识别为maven项目之后,Dependencies中某些包出现提示:unknown
在这里插入图片描述
这个问题就是在pom.xml中该包未指定版本号,所以指定一个版本号即可,maven支持多种方式指定,直接指定,父级maven指定,物料清单都可以。
在这里插入图片描述
B、pom.xml中某些jar包出现红色提示
在这里插入图片描述
红色部分就代表目前本地maven仓库中未找到的部分,白色则代表目前本地仓库中存在的部分,比如上面的org.springframework.boot是白色说明本地仓库中这个路径是有的,而spring-boot-starter-websocket为红色,说明本地仓库中未有该包。
那么此时有两种情况
第一:如果是公有的包只要maven配置文件中配置了阿里云镜像仓库或者maven默认的仓库都是可以拉取到的
第二:如果是公司私有仓库的jar包,那么需要先在maven配置文件中配置私有仓库的地址
注意:如果pom.xml中指定的parent包出现了红色提示,那么可能会导致引入的公有的包都会报错红色提示,如果指定的这个parent是私有的包,那么也需要先在maven配置文件中配置仓库的地址
然后可以通过以下方式触发idea重新拉取jar包
a、修改一下pom.xml文件,如果idea配置的自动导包那么idea就会重新导包,如果未配置,那么idea的右下角会出现下图的提示点击Import Changes导包即可
在这里插入图片描述
b、idea右边有一个竖着的Maven点击之后会有一个刷新按钮,点击刷新按钮重新导入包
在这里插入图片描述
C、当一个项目中存在多个pom文件的情况下
有时候我们的项目可能并非只有pom.xml这一个maven文件,可能存在多个,那么这个时候可能会出现导入这个项目之后,idea默认将其中的某个maven的xml文件进行了识别,而未将所有maven的xml文件都识别,最终可能就会导致,我们的其他项目或者模块刚好依赖了那个未识别的xml文件中定义的jar包,那么会导致这个项目或者模块定义的这个未被识别的jar包的依赖出现报错或红色提示;比如:A项目中有pomA.xml(将A项目定义为A1.0版本)和poma.xml(将A项目定义为A1.1版本)两个maven的文件,导入的时候idea如果默认识别了pomA.xml文件,那么此时在B项目或模块中,定义了A1.0版本的依赖的话是没有问题的,如果定义了A1.1版本的依赖,因为idea未将poma.xml识别,那么此时打包A项目并不会生成A1.1的版本即本地仓库中不存在该jar包,那么B项目或模块中的pom.xml文件定义的A1.1版本的依赖就会出现红色提示。
解决方案:和1中的问题解决方案一样:右击未被识别的pom.xml文件->Add as Maven Project
此时这个未被识别的pom.xml文件也会被idea识别为maven项目,那么进行打包就会生成对应的jar包,项目中有多个未被识别的pom.xml就需要执行多次

D、当配置了maven私服之后某些私有的jar包还是拉不下来,pom.xml对应依赖也是红色提示
首先当配置了对应的私服之后,网络没问题的情况下,maven私服未作白名单验证的情况是可以拉下来的(比如某些maven私服做了IP白名单验证,需要连接到某个网络才能拉取jar包),如果依旧出现拉取不下来,提供两种解决方案:
a、从同事那里将他本地maven仓库中的对应未拉取到的包拷贝到自己电脑的本地仓库中,如果不清楚需要哪些包,可以将同事电脑中整个本地仓库都拷贝过来,然后替换自己本地仓库,idea中刷新maven即可。

b、进入到maven仓库中下载对应的jar包,然后放在本地对应的目录中,此时需要注意的是仅仅下载对应的jar包是不行的,还需要将另外的几个文件也下载下来,放入本地仓库对应的目录中
我们以alibaba的fastjson为例,正常idea中可用状态的fastjson jar包对应目录中有如下几个文件:
在这里插入图片描述
所以我们在maven仓库中也需要将这五个文件都下载下来放入本地仓库对应的目录中
打开本地仓库未拉取成功的jar包的路径,发现如下的文件,将其删除
在这里插入图片描述
进入到maven私有仓库中,下载红框勾选的几个文件
在这里插入图片描述
其中pom文件是一个xml文件无法下载,那么可以在本地新建一个文本文件,将私有仓库中pom文件中的内容拷贝到其中,然后将这个文本文件的名称及后缀修改为私有仓库中的pom文件名称及后缀
得到这五个文件之后,将这五个文件拷贝到本地仓库对应的路径中,如下图:

在这里插入图片描述
不需要将_maven.repositories文件改为_remote.repositories,改为_remote.repositories之后刷新的时候会再去拉取jar包,但是我们拉取不到这个jar包,所以在idea中刷新之后还是会出现报错,而_maven.repositories不会再去拉取jar包会直接使用现成的本地jar包就不会报错。
然后可以通过B中提到的两种方式刷新maven重新导包即可,如果刷新之后对应包还是报错则可以重启idea等待idea加载完毕,此时私有仓库中拉取不到的包,应当已经加载进来。
如下pom中不报错,并且Dependencies中对应的包也不报错:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值