IntelliJ 2018.1 Tomcat运行问题:Run/Debug配置‘包含Provided依赖’选项
解决IntelliJ 2018.1中勾选"Include dependencies with 'Provided' scope"导致Spring Boot启动失败的问题
我前阵子升级IntelliJ后也碰到了完全一样的坑!这个2018.1新增的默认勾选选项,确实给不少Spring Boot开发者添了麻烦。
为啥会出问题?
在Maven或Gradle里,Provided scope的依赖本来是用来标记只在编译阶段需要、运行时由目标容器提供的依赖(比如Servlet API这类)。但Spring Boot的嵌入式容器(比如Tomcat)本身已经自带了这些依赖,当你勾选这个选项后,标记为Provided的依赖会被强制加入运行时类路径,直接和Spring Boot自带的容器依赖产生冲突,最终就会抛出像ApplicationContextException这类容器启动失败的Bean异常。
快速解决步骤
- 打开Run/Debug配置面板:点击顶部工具栏的「Run」→「Edit Configurations...」
- 在你的Spring Boot应用配置项里,找到**"Include dependencies with 'Provided' scope"**这个选项
- 取消它的勾选状态
- 点击「Apply」保存配置,重新启动应用就正常了
补充说明
如果你的项目是部署到外部容器(而非用Spring Boot嵌入式容器),那可能确实需要让部分Provided依赖在运行时生效,这种情况你可以单独调整对应依赖的scope,或者针对性配置运行时类路径。但对于绝大多数用嵌入式容器的Spring Boot项目来说,取消这个勾选就能直接解决问题。
内容的提问来源于stack exchange,提问作者Always Learning
相关产品推荐
相关产品推荐

