问题阐述
问题发生情况
- 当使用maven - clean以后,或当新建文件或对文件做更改
- pom.xml 中对 java-version 进行更改
- 重新构建项目时发生错误
发布此博客原因与问题解决方法
原因
- 看了网上的方法,映入眼帘的几个词条都没有根本解决问题。
- 网上的方法也没有人讲解一下原因,觉得对有些小白很不友好。
解决方法
将pom.xml 中java.version 改为当前电脑已配置环境。
也就是说,你本来没有配置jdk11,但是你java.version使用了11,就会出现 Fatal Error compiling 异常
原因一
- idea 构建工具原理:调用maven构建
- maven - compile编译是部分依赖于 jdk(即javac)
- maven编译后的会生成到target目录
- maven clean :删除maven编译后的target目录
- 在maven默认的生命周期是不会执行clean操作,当文件未更改时编译会偷懒,有缓存(不知道是maven的设计,还是idea的设计)
5.1 所以当你修改javaversion 后 构建并不会出现问题 - 当你执行maven clean后,系统构建会重现编译,这时候就会出现该异常。
- 或者当你点击运行,此时也会出现该异常,(推测运行会执行clean生命周期,或者使编译是不会偷懒)。
原因二
如果你本地有这个JDK,但还是出错的话:
建议你看看你的Maven中的jre是否配置正确
这里的 jre 就是虚拟机 ,就算你其他地方调试正确,1.8版本的虚拟机 也无法运行 1.11版本的字节码。
结论
当遇见一些问题时,使用mvn-clean是极好的习惯,它可以清空“缓存”。
延展
在构建项目时,Java Version 一定要选择正确。