Idea 应用启动时 WEB-INF/lib 无效标记问题处理
一 问题描述
如图所示:
问题:多 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 内容如下,后续即可正常启用:
版权声明: 本文为 InfoQ 作者【程序员架构进阶】的原创文章。
原文链接:【http://xie.infoq.cn/article/f33fa2f451f2a57141075e7e6】。文章转载请联系作者。
评论