本来都没打算写这一篇的,主要是1整天时间都被坑在这里了,不得不记录一下。
本来,我昨天傍晚打算填上之前自己写的坑的 IDEA上快速搭建基于maven的Spring MVC项目步骤 ,所以我就洗洗手打开idea 2019准备实操好逐步截图,然后就遇到坑了!具体就是我选择了模版生成项目,如图1,但是其实我本地仓库内没有maven-archetype-plugin的依赖包,所以在点击创建项目的时候,idea就链接远程仓库给我下载依赖去了,然而........我不知道的是,就因为下载依赖这事儿,硬生生能磨掉我差不多1天时间。
先说下我遇到的具体问题和我的思考经历:生成的项目根本没有maven的基本结构,run提示是BUILD FAIL,提示就是maven-archetype-plugin依赖包下载不成功。因为我之前的做的项目基本用到的依赖包差不多,我也很久没使用maven下载依赖包了,并且我之前刚好换过新电脑——总之种种原因,让我觉得,嗯?难不成是我的maven没安装好?
先检查是否新电脑本身安装maven就有问题,结果:安装正常。
安装没问题,配置出问题了?
我检查了我的maven的setting.xml,查看对应的远程仓库url,因为很多情况可能是这里出错了。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
我看看也没啥错啊,这就奇怪了。
错误不解决,排查不停止,我决定先手动安装依赖包试一试,于是,我登陆 maven仓库 开始手动下载jar包,并使用maven命令本地进行安装,显示安装成功后再次进行项目创建。
还是失败!但问题变成了另外一个依赖下载失败。总归进步,我继续尝试手动下载、安装缺失的包。然而,经过2次操作后,报错变了,变成NoClassDefFoundError!唉,我猜啊,我也不能断定啊,是不是我手动下载安装的存在依赖版本不一致的情况导致的呀?毕竟依赖版本那么多,难保。
其实到这个时候我心态已经有点难受了,常规解决问题途径我觉得都试过了,为了解决问题我只能继续尝试通过maven下载关联依赖。但又跟一开始一样,一直失败。
总之接下来是无数次的失败,无数次的网上浏览别人的错误经历,无数次的尝试..........恩,花了很久,情绪也很低落,但不得不说,皇天不负有心人!我最终解决了问题,主要是在查看 IDEA初次创建maven项目时,解决阿里云镜像不可用问题 和 [ERROR] Plugin org.apache.maven.plugins:maven-archetype-plugin:RELEASE or one of its dependencies...这两篇文章后,发现错误情况类似,于是参照修改。
最终,我修改了maven镜像仓库url并在idea内maven vm option设置了默认忽略证书的参数(-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true)后,终于依赖下载成功,新建的项目使用模版成功,本来应该能轻易完成的事,我花费了这么久,解决之后心中竟然会小激动?!而且在成功生效的情况下,发现idea使用maven下载的依赖maven-archetype-plugin版本是3.12,这和我之前手动下载的2.2、3.01不一致,我之前都是选择显示使用人数多的下的,而且一直秉承尽量不挑最新版下,然而它给我上了一课,不要想当然~
自我总结:其实这次问题,我个人还不能完全想清楚,这点很可惜,但也不能说这次问题解决的经历没有价值,在过程中还是颇有收获,毕竟浏览了很多也实际去尝试了很多,说说我个人的想法,我觉得主要有两个方面可能造成我的问题,1是我的idea存在全局默认参数设置后,重启或打开新项目设置未生效的情况,这点我很奇怪,因为我确定我设置的是全局的setting,而不是单个项目的setting,如下图这个参数设置里,我填写了忽略安全证书的系数但是一直不生效;2是可能我选择的镜像url可能确实有问题。不管怎么说,下次有机会遇到大佬的话看有没有机会当面问问,自己学习工作之余也再多尝试一下,虽然这次问题解决了,但不明所以的解决还是很遗憾的。
多做做,多学学,才不会被遇到的问题轻易弄的脑壳疼。