一 问题描述
如图所示:
问题:多module工程,sprintboot应用,启动执行时报错,信息为: Error:java:无效的标记: xxxx/src/main/webapp/WEB-INF/lib
查看compiler.xml信息(如下图,在工程 =>.idea => libraries => compiler.xml):
问题所在的位置是 <component name="JavacSettings"> 下,如下图:
二 开发环境及版本信息
开发环境:Mac操作系统
idea版本信息:
IntelliJ IDEA 2018.3.5 (Ultimate Edition)
Build #IU-183.5912.21, built on February 26, 2019
Licensed to Rover12421 / Rover12421
Subscription is active until January 1, 2100
JRE: 1.8.0_152-release-1343-b28 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.5
三 问题分析和解决方式
3.1 问题分析
我们的工程对外提供http接口,但使用的是SprintBootApplication,结合 @RestController注解的形势对外提供。(默认容器是tomcat)。工程目录中并没有webapp/WEB-INF/lib,所以这就是造成错误的原因。compiler.xml的内容是idea的默认配置,那么我们把<component name="JavacSettings">下的内容都注释掉就可以了。
3.2 解决方式
事实上,注释操作后,也确实启动成功。不过,我们还发现,工程更新、同步等动作后,compiler.xml还是会恢复,所以要么每次注释。但idea显然不会这么弱,既然是idea下的文件,那么找到配置位置一次设置完成就好。
这里再说一句,搜到的很多文章还是旧版的idea。涉及调整配置,提到要从File->setting找的都是。 事实上,现在使用的2018后的版本应该都找不到这个位置。 应该是 idea->Preferences,在搜索框中搜索compiler:
点击Java Compiler进入下面界面:
注意标红的部分,选中后,点减号”-“移除。全部移除完毕后, Apply应用即可。再查看compiler.xml内容如下,后续即可正常启用: