Spring STS中Spring Boot项目默认结构恢复及格式变更问题解决
解决Spring STS里Spring Boot项目结构被Java EE配置搞乱的问题
为啥会出现这种情况?
你踩的这个坑本质是STS的工作空间全局配置被悄悄篡改了。当你创建Dynamic Web Project并同意转成Java EE格式时,STS不光改了这个新项目的配置,还把整个工作空间的默认项目模板切换成了Java EE模式——这就导致原来的Spring Boot项目被自动加上了Java EE相关的项目特征(facet),后来新建的Spring Boot项目也直接继承了这些多余的配置,结果就是所有项目的结构都乱了套。
先搞定工作空间默认配置(防止新建项目再翻车)
首先得把STS的全局配置改回去,不然新建项目还是会出问题:
- 打开STS,点顶部菜单栏的
Window > Preferences - 在弹出的设置窗口里,展开
Maven > Java EE Integration,把**"Enable Java EE Configuration"**这个勾选框去掉,然后点Apply and Close。这样之后新建的Spring Boot/Maven项目就不会自动沾Java EE的配置了。
逐个修复已有的Spring Boot项目
接下来要把每个被搞乱的项目改回原样:
- 右键要修复的项目,选
Properties(属性) - 在属性窗口里找到
Project Facets(项目特征):- 把
Dynamic Web Module、JAX-WS相关的所有选项都取消勾选(比如JAX-WS Web Services这类) - 只保留
Java(版本要和你的项目JDK对应)和Maven(Gradle项目就留Gradle)这两个选项 - 点
Apply,STS会提示要移除相关文件,直接确认就行
- 把
- 手动删掉多余的Java EE文件:
- 如果项目里有
WebContent文件夹,直接删掉 - 要是
src/main/webapp/WEB-INF下面多了web.xml,也删掉 - 项目根目录下的
deploymentDescriptor相关文件/文件夹也一并删除
- 如果项目里有
- 刷新项目:右键项目选
Refresh,或者按F5 - 重新构建项目:右键项目 >
Run As > Maven clean,接着Run As > Maven install(Gradle项目就执行clean和build任务)
检查是否恢复正常
修复完之后,看看项目结构是不是回到标准Spring Boot的样子:
- 核心目录是
src/main/java(放业务代码)、src/main/resources(放配置和静态资源)、src/test/java(放测试代码) - 没有多余的Java EE相关目录和配置文件
- 项目图标变回Spring Boot的绿色小叶子(不是Java EE的Web项目图标)
避坑小贴士
以后要是需要创建Java EE动态Web项目,建议单独开一个新的STS工作空间,别和Spring Boot项目放一块,这样就不会互相干扰配置啦。
内容的提问来源于stack exchange,提问作者Farnan




