IntelliJ IDEA中用Maven Archetype生成Web项目需确保JDK(非JRE)、本地Maven路径及Ultimate版激活;选maven-archetype-webapp骨架,禁用在线搜索;生成后补java/resources目录并标记为源根,升级web.xml至4.0规范,配置Web Facet与war exploded Artifact。

在IntelliJ IDEA中用Maven Archetype快速生成标准Web项目骨架,是Java Web开发的常规起点,但新手常卡在骨架下载失败、目录缺失或pom.xml配置错位上,导致后续无法部署Servlet或访问index.jsp。
创建前必须确认的三项环境
打开终端执行java -version,确保输出JDK 8/11/17等LTS版本;若提示“不是内部命令”,说明JAVA_HOME未配置或指向了JRE而非JDK安装根目录。【JDK必须是完整开发套件,不能只装JRE】
启动IDEA后进入File → Settings → Build, Execution, Deployment → Build Tools → Maven,检查Maven home path是否指向本地解压路径(如D:\apache-maven-3.9.0),避免使用Bundled版本——它在内网或代理环境下极易因无法连通中央仓库而卡死。
确认IDEA已激活Ultimate版;Community版不支持Tomcat集成和Web Facet自动识别,强行操作会导致Artifact为空、部署按钮灰显。
用Archetype生成Web项目骨架
第一步:点击欢迎界面New Project → 左侧选Maven → 勾选Create from archetype → 在下方列表中精准找到org.apache.maven.archetypes:maven-archetype-webapp(注意:不要选带“quickstart”或“simple”的其他项)。
第二步:填写GroupId(如com.example)、ArtifactId(如my-web-app)、Version(保持默认1.0-SNAPSHOT即可)→ 点击Next。
第三步:在Maven设置页,【务必取消勾选“Search for archetypes in repositories”】,否则IDEA会尝试联网搜索所有archetype,耗时且易超时;User settings file保持默认,无需手动指定settings.xml——此时骨架尚未下载,改了也无效。
第四步:点击Finish,等待右下角Maven进度条结束;若卡在Downloading archetype...超过2分钟,立即关闭对话框,改用无骨架方式(见下一节),不要反复重试。
修复骨架生成后的三处关键缺失
方法一:补全Java源码目录
在Project视图中右键src/main → New → Directory → 输入java → 回车;再右键该目录 → Mark Directory as → Sources Root。
方法二:补全resources配置目录
同上操作新建resources目录 → 右键 → Mark Directory as → Resources Root;这一步漏掉会导致log4j.properties或application.yml无法被加载。
方法三:升级web.xml声明头(必做)
打开src/main/webapp/WEB-INF/web.xml,将开头的老旧DOCTYPE声明:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
整行删除,替换为:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
配置Web Facet与Artifact
打开File → Project Structure → Modules,选中你的模块 → 点击+ → Web → 确保Web resource directory指向src/main/webapp,并勾选Web.xml路径为src/main/webapp/WEB-INF/web.xml。
切换到Artifacts标签页 → 点击+ → Web Application: Archive → For 'xxx' module(xxx为你模块名)→ 新建的Artifact默认名为xxx:war exploded,保留即可;【不要点“Output Layout”里的“+”去手动加lib,Maven会自动处理依赖】
最后点击OK保存所有配置,此时Project Structure窗口可关闭。














