在 IDEA 2020 里配好 Maven再创建一个 Spring Boot 项目这套流程网上教程很多但不少教程还在用旧版本的界面截图照着做第一步就对不上。真正自己动手时版本差异、配置路径不同、网络导致依赖下载失败每一步都可能卡住。我帮人排查过不少这类问题发现痛点集中在三处IDEA 2020 创建 Spring Boot 项目的入口和别的版本不一样、Maven 明明配了但 IDEA 加载的还是默认仓库、依赖下载速度太慢导致项目一直编不过。这篇就按实际创建的顺序来写包括为什么这么配、在哪里点、遇到问题先查什么。适合刚接触 Java 后端、在 IDEA 2020 上折腾 Spring Boot 的读者也适合已经跑通但想弄清楚原理的开发者。1. 为什么是 IDEA 2020 Maven 这套组合1.1 IDEA 2020 在项目创建入口上的变化IDEA 2020 不算老也不算新但它的 New Project 窗口和之后的新版本差异不小。很多教程直接说“左侧点 Spring Initializr”可实际上你在 IDEA 2020 里新建项目时左侧列表能不能看到这个选项取决于你装的是旗舰版还是社区版。旗舰版通常会有直接的 Spring Initializr 入口社区版里则没有这就让很多跟着教程操作的人第一步就对不上界面。另一个容易被忽略的变化是从 2019 版本开始Spring Boot 项目向导默认是访问远程的 Spring Initializr 服务来在线生成项目而不是从本地模板生成。这是一个很关键的设计意味着创建过程强依赖网络。如果你的网络访问远程服务不稳定项目生成就会卡在中间某个进度看起来像 IDEA 卡死了其实就是请求没通。理解这一点之后遇到生成卡住就不会慌也知道该往哪个方向排查。1.2 Maven 在 Spring Boot 项目里扮演什么角色Maven 简单说就是一个构建工具加依赖管理器。Spring Boot 项目启动之后会依赖几十甚至上百个 jar 包这些 jar 如果手动下载、手动放进 classpath工程是没法维护的。Maven 用一个 pom.xml 文件声明项目需要哪些依赖启动编译时自动去远程仓库下载并在构建时统一管理版本。有人会问为什么不用 Gradle这个选择在 IDEA 2020 时代其实更多是生态考虑。Spring Boot 官方的示例和大多数企业存量项目都以 Maven 为主网上资料多遇到问题容易搜到配置文件相对直白。Gradle 构建速度在某些场景下更快但对刚接触 Spring Boot 的人来说Maven 的学习曲线更缓社区踩坑记录也更多。团队协作时Maven 的标准目录结构和生命周期约定更统一接手别人项目时不用先去猜构建逻辑。1.3 两种创建 Spring Boot 项目的入口怎么选IDEA 2020 中创建 Spring Boot 项目通常有两条路。第一种是在 IDEA 里新建项目走向导选项选择 Spring Initializr 后一步步填信息。第二种是直接用浏览器打开 Spring Initializr 的网页在线填好配置后下载 zip 压缩包再作为 Maven 项目导入 IDEA。我的建议是优先用 IDEA 内置向导因为它把“创建”和“导入”两个动作合在一起生成完成就能直接看到 Maven 项目结构和启动类。如果内置向导因为网络问题一直失败再用网页方式兜底。网页方式的优势是生成过程独立于 IDEA网络连接出问题时更容易定位劣势是多一步手动导入但导入方式也不复杂后面问题清单里我会详细展开。2. 环境准备与 Maven 关键配置2.1 JDK、Maven 版本怎么搭最稳IDEA 2020 发布时主流的 Spring Boot 是 2.xJDK 8 是最稳妥的选择。Spring Boot 2.x 的自动配置和编译参数默认基于 JDK 8 设计虽然 JDK 11 也能跑但新手不建议一上来就同时挑战新 JDK、新 Spring Boot 和新 IDE把变量控制在最小范围出了问题才好定位。JDK 安装完之后要确认两个环境变量JAVA_HOME 和 PATH。以 Windows 为例安装目录通常是JAVA_HOMEC:\Program Files\Java\jdk1.8.0_281 PATH%JAVA_HOME%\binMaven 我建议使用解压版而不是 IDEA 自带的 bundled Maven。IDEA 自带的 Maven 虽然开箱即用但它的 settings.xml 读取逻辑和自己装的版本不完全一样版本也可能落后于项目需求。解压版的路径完全可控配置行为更稳定。Maven 3.6.3 这个版本在 IDEA 2020 和 Spring Boot 2.x 组合下表现比较稳定3.8 之后对镜像和本地仓库的默认行为有调整默认配置反而容易出问题。2.2 把 Maven 配置到 IDEA 2020 的指定位置安装好 Maven 解压版后打开 IDEA 2020进入设置页面。Windows 下是 CtrlAltSMac 下是 Preferences。然后找到 Build, Execution, Deployment → Build Tools → Maven。这个页面里有几个关键配置项Maven home directory指向你解压的 Maven 目录选中目录后 IDEA 会识别出版本号。User settings file选择 Maven 目录下 conf/settings.xml。Local repository如果设置文件里已经配置了本地仓库路径这里会自动读取也可以手动覆盖。这里最容易踩的坑是很多人确认了命令行里 mvn -v 正常就觉得 Maven 配置好了结果 IDEA 里加载的还是默认路径依赖下载仍然走中央仓库、仍然慢。原因是 IDEA 有自己的 Maven 配置缓存修改环境变量不会自动同步到 IDEA。所以每次改完路径后建议在 Settings 页面里看一眼当前识别出的 Maven home 路径再点右下角的 Apply 和 OK必要时重启 IDEA。2.3 给依赖下载提速镜像与本地仓库优化Spring Boot 项目创建的瞬间就要下载大量依赖中央仓库在国外很多网络的下载速度很慢。我通常会在 settings.xml 里加一个 mirror 配置把 central 指向网络环境下延迟更低的镜像节点同时把本地仓库位置指到空间大的非系统盘目录。一个典型的配置片段长这样settings localRepositoryD:/maven-repository/localRepository mirrors mirror idcentral-mirror/id mirrorOfcentral/mirrorOf urlhttps://mirror.example.com/repository/maven-public//url /mirror /mirrors /settings注意这里的 URL 需要替换成你实际网络环境下可用的镜像地址不同时期可用性会变化我刻意不写具体域名避免误导之后照着配反而报错。选择镜像有两个判断标准一是延迟低二是同步完整度。有些镜像同步慢部分新版本的 jar 包会 404遇到这种情况宁可换回中央仓库也不要硬等。本地仓库不要放在 C 盘用户目录默认位置依赖积累到几个 G 是常态重装系统会全丢。我一般放到数据盘比如 D:/maven-repository目录名也不要用中文避免某些插件读取时编码出问题。3. 用 IDEA 2020 创建 Spring Boot 项目的完整实操流程3.1 新建项目的每一步该选什么启动 IDEA 2020关闭当前项目页面进入创建入口。选 Create New Project左侧菜单选择 Spring Initializr。如果你的界面里没有这个选项试试找 Spring Assistant 之类的名称或者直接用网页方式生成。Project SDK 选择 1.8这是和 Spring Boot 2.x 最匹配的版本。点击 Next 后进入项目坐标填写页面。Group 通常写成公司域名的反写个人学习可以写 com.exampleArtifact 是项目名例如 demo。下方有几个选项需要注意Type 选 Maven ProjectPackaging 选 JarLanguage 选 JavaJava Version 选 8。这里如果选错 Packaging后面生成的项目结构和启动方式会不一样容易让人困惑。依赖选择页面里第一次创建只需要勾选 Spring Web。这个依赖会引入内嵌 Tomcat、Spring MVC、Jackson 等组件让项目可以处理 HTTP 请求。其它依赖比如数据库驱动、Redis、消息队列建议等真正用到再加。第一版就把一堆组件全勾上等于同时引入一堆可能冲突的配置出了问题很难判断是环境问题还是代码问题。点 Finish 之后 IDEA 开始初始化右侧下方会出现下载进度条等右下角 Maven 导入完成项目就可以动了。3.2 生成后的项目结构哪些文件要重点关注项目生成后展开目录可以看到几个核心区域src/main/java存放 Java 源码里面有一个以 Application 结尾的类这是启动类。src/main/resources存放配置文件默认有 application.properties。src/test/java测试代码目录默认带一个空的上下文加载测试。启动类上标注了 SpringBootApplication这个注解里面整合了自动配置、组件扫描等功能。很多人刚创建完项目还没写任何代码就急着改配置或者加依赖。我的建议是先跑一次空项目确认基础链路是通的再动其它内容。如果启动类右键没有 Run 选项说明 IDEA 还没有把它识别成可运行项目先检查 Maven 是否导入完成、Project SDK 是否匹配不要急着改代码。3.3 pom.xml 里的依赖怎么理解怎么加新的pom.xml 是 Maven 项目的核心。第一次看到这个文件重点看三块内容。第一块是 parent 标签指向 spring-boot-starter-parent。这个父工程统一管理了大量常用依赖的版本所以你在 dependencies 里写 Spring Boot 相关依赖时通常不需要手写版本号父工程已经帮你锁定了。第二块是 dependencies 里的 spring-boot-starter-web它包含了运行 Web 服务所需的完整组件。第三块是 build 里的 spring-boot-maven-plugin这是启动 Spring Boot 应用和打包可执行 jar 的关键。加新依赖时建议去 Maven 仓库搜坐标复制 dependency 标签粘贴到 pom.xml 里。IDEA 里在 dependencies 标签内按 AltInsert 也可以选择 Dependency 搜索添加。不要手动随便写版本号除非你确定父工程没有管理这个依赖。版本冲突往往比代码错误更难看两个 jar 包各自依赖了不同版本的同一个库启动时各种类找不到的报错排查起来非常耗时。3.4 写一个能访问的接口并启动验证在启动类同级的包下新建一个 controller 包创建一个控制器类。比如package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; RestController public class HelloController { GetMapping(/hello) public String hello() { return Hello Spring Boot; } }回到启动类点 main 方法左侧的绿色箭头运行。看到控制台输出 Started Application并且包含 Tomcat started on port(s): 8080说明启动成功。浏览器访问 localhost:8080/hello页面会显示 Hello Spring Boot。这一步有个容易忽略的细节控制器所在的包必须放在启动类所在包的下级或同包。如果放到包外面Spring Boot 默认组件扫描扫不到访问接口会一直 404。另外如果想避开端口冲突可以在 application.properties 里加一行 server.port8081重新运行后接口地址就变了。4. 运行期最常见的坑以及对应的排查顺序4.1 项目生成过程卡住或超时的处理创建项目时卡在生成进度条是 IDEA 2020 里最常见的启动问题原因基本都是内置向导访问远程 Initializr 服务失败。这时候不一定要反复重试 IDEA 向导可以直接用网页版 Spring Initializr把各项配置重新选一遍下载 zip 包本地解压然后在 IDEA 里用 Open 打开这个目录选择作为 Maven 项目导入。这个方案绕过了 IDEA 自身的网络请求但又保留了向导生成的标准项目结构和内置向导生成的结果基本一致。之后 Maven 导入过程如果还慢那就是依赖下载的问题按下一节排查。如果网页也打不开先检查本机代理或安全软件是否拦截了相关请求这部分属于个人环境问题没有通用解法只能逐个排查。4.2 依赖下载慢甚至失败的排查顺序首次导入 Spring Boot 项目可能要下载几百 MB 的依赖进度条如果长时间不动先确认 Settings 里的 User settings file 是否指向了配置镜像的文件。很多人改完 settings.xml 保存后IDEA 还缓存着旧配置一定要回到 Maven 设置页面确认路径。一个常见报错是 Non-resolvable parent POM意思就是项目依赖的父工程 pOm 下载不下来。排查顺序按这套走先在命令行执行 mvn -v 确认 Maven 可用再执行 mvn clean compile 看看依赖能否正常下载。如果命令行能下IDEA 不能问题在 IDEA 的 Maven 配置加载如果命令行也下不动问题在 settings.xml 或网络。mirrorOf 的值也有讲究。写成 * 表示所有仓库都走镜像一旦镜像同步不完整后续新增依赖容易 404。写成 central 只会拦截中央仓库粒度更细我一般用这种方式。改完 settings.xml 后在 IDEA 右侧 Maven 面板点刷新按钮或者右键 pom.xml 选 Maven → Reimport。下面是几个高频问题的速查表现象常见原因处理办法创建项目卡进度向导访问远程服务失败用网页版 Initializr 生成后导入依赖一直下载中走的中央仓库或镜像不对配置镜像并确认 settings.xml 路径Non-resolvable parent POM父工程 pom 没下下来检查网络、镜像、IDEA 缓存启动类右键没有 RunMaven 还没导入完成等待导入或手动 Reimport接口访问 404类包路径不在启动类扫描范围调整 controller 包路径端口被占用8080 已有服务在配置里改 server.port4.3 启动失败端口、版本、导入异常启动类运行后立刻退出控制台末尾提示 Port 8080 was already in use这是端口被占用。要么找到占用端口的进程关掉要么在 application.properties 里把端口换掉。开发阶段我习惯直接换端口不额外去杀系统进程。另一个容易埋雷的问题藏在 Java 版本不匹配里。项目创建时选的是 JDK 8但电脑上默认的 JDK 是 11 或更高构建时可能出现 release version 不支持之类的错误。处理方式是把 Project Structure 里的 Project SDK 和 Maven runner 的 JDK 指到同一个版本。进入 Settings → Build, Execution, Deployment → Build Tools → Maven → Runner把 JRE 选项选成项目对应的 JDK。还有一种情况是 pom.xml 标签顺序写错控制台出现 cvc-elt.1.a 这类 XML 校验错误。Maven 的 pom.xml 对标签顺序有严格规定从网页复制的依赖片段一般没问题但手动调整时容易打乱顺序。遇到这种情况右键 pom.xml 选 Maven → Reimport或者直接从 start 页面生成的新项目里复制 pom 内容。4.4 一些能直接提高成功率的实操心得整套流程走下来最重要的建议是第一次创建时不要追求界面好看、依赖齐全能把一个空项目跑起来就是胜利。配置环境的难点不在某个操作本身而在多个工具之间的互相配合。把“配置环境”和“学 Spring Boot”混在一起学遇到问题时很难定位到底哪一步错了。我现在帮人配环境还是照着先确认 JDK、再配 Maven、最后建项目的顺序来。IDEA 2020 这套组合我用了很久只要能稳定跑起来日常开发并不会觉得缺什么。最后分享一个小习惯把本地仓库路径、JDK 版本、Maven 目录这些信息记在一个备忘里下次换电脑或重装系统时直接照抄可以省掉大量来回排查的时间。希望这篇梳理能帮你少踩几个坑。