由idea配置spring boot导致的奇葩问题牵扯出的一系列东西

今天,或者说这几天,我从经典的web servlet开发转到尝试spring boot开发,但是一直无法解析spring-boot包等,直接添加相应jar包又有新的报错,一个比一个难解决。

最后的解决:其实是idea或者jdk8的问题(2019-11-18,jdk8再2019年1月即停止免费更新)。直接重装idea是没用的,因为我用eclipse也打不开。在我把jdk8换成jdk11,再重装idea后,。如果不做这些,直接使用maven来build、使用maven的spring-boot插件来run,就是ok的(但是之后添加什么依赖后还会出现各种问题,所以换配置环境吧)。据谷歌说是idea生成自己的.iml文件时冲突,但是这些冲突是很难解决的。

 

 

详情如下。

 

0、初始条件——idea ultimate 学生激活版一个,身经百战从不出错的jdk8,没有手动安装maven。

1、idea打开spring boot initializr,建了一个项目,成功出来一个项目,在按下idea的build前没有报错。

2、按下idea的build,显示@SpringBootApplication无法解析,spring-boot和spring-boot-autoconfigure包不存在等等问题。

 

查找百度和谷歌,中文和英文,博客、论坛和官方文档,所有的解决方案不外乎:

1、删掉maven仓库,重新install,reimport等等,本质说maven下载的东西错了。现在解决了所有问题后看来,这个情况出现其实很小。

2、打开idea的invalidate cache and restart等等,本质说idea有简单的小错误。没有用。

3、设置jdk,检查项目project structure的dependency和library,看看缺的东西,加上。没有用。

 

 

事情的转机

在尝试以上方法全部无效后,我手动安装了maven,了解了maven是什么东西,大概就是一个命令行程序,能够很好的完成java项目开发的管理,最基本的就是管理项目的模块和模块们的依赖。

之后做了这几件事:

1、仔细检查idea的project structure和project setting,看看maven的仓库内容是不是真的加入到了project structure的library和module的dependency里面。是的,加了,确认,真的不是这里的问题。但是idea中运行还是报错,表示spring-boot等包不存在。即便是我在pom.xml手动加入相关库,依旧没有用。

2、maven的clean、install什么的倒一直没错。于是,深入学习maven工具,发现maven本身(虽然是基于maven的各种插件)就可以compile、build整个项目,于是使用idea的maven插件来绕过idea的编译环境直接使用maven构建项目。没有报错,使用maven的运行(plugins,spring-boot,spring-boot:run)——

——成功。打开localhost:8080也接受访问(停止运行后,localhost8080为“网页无法运作”),不过显示的主页whitelabel error page,于是我觉得应该是离成功差一步了。

3、祭出google,搜索“localhost 8080 whitelabel error page”,而不是“spring boot whitelabel error page”,得到结果:没有出错,你没有在主页写东西就只能看到这个。于是你照着网上的教程,在main函数的那个类里加点东西(),用maven运行项目,看到了你的主页。

4、其实在idea的右边的maven用命令行mvn -U idea:idea更新插件,就可以在idea中正常跑出项目,但是这个maven的idea插件(不是idea的maven插件)据官网描述已停止支持,且我发现重开idea后就失效。因此选择绕过idea使用maven自行处理问题。

 

总结:

环境版本很重要,尤其是有长长的依赖树的时候。

大部分问题都很简单,但如果这些简单问题常见的解决方法解决不了的,那就是可能直到重装环境之前,再也解决不了了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值