关于这种操作,真的是面试十个人有九个答不上来,你不要看百度上写了那么多千篇一律的文章,实际上解决能解决问题的少之又少,关键的是我们通过不断地踩坑,形成自己的文档,这个才是最重要的,也许后面会不断地踩坑,所以这篇文章也会一直地更新下去
idea启动eclipse项目的背景
- 公司有部分老项目,年久失修,又在服务器上跑;
- 很多用idea的小伙伴已经不会再回去用eclipse了;
- 其实很多小伙伴连项目怎么跑起来都不会;
分析自己的问题
- 哪一种原因导致项目无法启动;
- 代码报错还是编译不通过;
- jdk的版本是否设置正确;
- 是否是需要添加Tomcat的SSM项目;
- 数据库是否配置正确;
开工
1.首先 , 我们先要导入项目 - >
如果不知道怎么操作的可以考虑转行
微信截图_20210528140727.jpg
2.然后选择Open -> 选择你的项目 打开pom文件,当然作为开发我们肯定是maven和jdk已经配好了
微信截图_20210528141906.jpg
3.然后这个时候我们要修改jdk的版本
点击 File -> Project Structure
微信截图_20210528143740.jpg
把这些对应的参数改一改,然后Modules里面也改一改
微信截图_20210528144320.jpg
微信截图_20210528144401.jpg
然后在 File -> Settings -> Build -> Compiler -> Java Compiler 把改一改
微信截图_20210528144812.jpg
最后再到maven里面去修改
微信截图_20210528153400.jpg
BUT 你以为到这就结束了么 , 那我为啥不直接百度呢
所以你要知道问题出在哪
- idea的编译方式和eclipse的编译方式是不一样的;
- 在eclipse中发生的强转不一定可以通过idea的javac;
下面我们来分析
/** 获取聚合后的桶结构 */
List<ParsedBucket> parsedProvinceBuckets = (List<ParsedBucket>) provinceTerms.getBuckets();
这段代码在老版本的eclipse中编译是没有问题的,那么放到idea中你也知道javac的编译是严格的,所以List的集合是无法通过强转转为我们需要的类型的,所以如果编译不通过我们可以通过修改源码的方式:
/** 获取聚合后的桶结构 */
List<ParsedBucket> parsedDayBuckets = new ArrayList<>();
List<? extends Histogram.Bucket> parsedDayBucketss = parseDateHistogram.getBuckets();
for(Object object :parsedDayBucketss){
parsedDayBuckets.add((ParsedBucket) object);
}
微信截图_20210528154323.png
通过这样的方式,就可以通过编译了;
最后一种坑逼情况
很多时候我们的mapper.java和mapper.xml是放在同一个目录下的,那么我们eclipse在编译的时候会把该package下的所有文件都编译,但是idea并不会,idea只会找src下的所有.java文件,所以我们要把.xml的文件重新建立并放在resources下
自己去建立resources的文件夹
微信截图_20210528155045.jpg
LAST !
maven
微信截图_20210528155318.jpg