前置准备
在动手打包之前,先确认三个基础环境,这能避免后续大半的坑。
- 项目类型:打开项目结构(快捷键
Shift+Ctrl+Alt+S),在「Modules」中查看模块类型是否为「Web Application」。如果不是,右键模块选择「Add Framework Support」并勾选「Web Application」。 - JDK 版本:在「Project Structure」→「Project」里,确保「Project SDK」已指向本地 JDK(建议 1.8 及以上),且「Project language level」与 JDK 版本匹配。
- Tomcat 环境:本地需安装好 Tomcat(推荐 8.x/9.x),并记住安装路径,后续部署会用到。
核心配置:Artifacts 设置
这是打包最关键的一步,别盲目点击,理解每一步的目的更重要。
新建工件模板
打开「Project Structure」左侧的「Artifacts」面板,点击左上角的「+」号,依次选择「Web Application: Archive」→「Empty」。这一步相当于创建了一个空的 WAR 包容器,后续的文件都会往里填。
添加 Web 根目录
在右侧「Output Layout」面板中,右键空白处选择「Add Content Directory」,选中项目的 Web 根目录(通常是 WebContent 或 webapp)。这个目录必须包含 index.html 和 WEB-INF 文件夹,否则部署后页面无法访问。
关联编译输出
展开刚添加的目录,找到或新建 WEB-INF/classes 文件夹。右键该目录选择「Add Module Output」,选中当前 Web 模块。这样项目编译后的 .class 文件会自动同步到这里,不用手动复制,也避免了遗漏。
打包与验证
配置完成后,点击顶部菜单栏「Build」→「Build Artifacts」,选择刚才配置的 Artifact 并执行「Build」。打包产物默认在项目根目录的 out\artifacts\ 下。
拿到 WAR 包别急着部署,先用压缩软件打开检查一下:
- 根目录下是否有
index.html等静态资源。 WEB-INF/classes下是否有编译好的类文件。WEB-INF下是否有web.xml(注解项目可无,传统项目必须有)。
Tomcat 部署流程
- 将验证通过的 WAR 包复制到 Tomcat 的
webapps目录。 - 进入
bin目录启动服务(Windows 双击startup.bat,Linux/Mac 执行./startup.sh)。 - 浏览器访问
http://localhost:8080/[WAR 包名]/index.html。注意路径里要带上 WAR 包名,除非你把它解压到了根目录。
如果启动失败,优先查看 logs/catalina.out 日志,排查端口占用或依赖冲突。
常见问题排查
依赖缺失报错
部署后出现 ClassNotFoundException,通常是因为 Artifacts 配置里没加第三方库。在「Output Layout」的 WEB-INF 下右键选择「Add Library Files」,把 Spring、MyBatis 等依赖选进去重新打包即可。
classes 目录为空 检查是否漏了「关联 Module Output」步骤,或者代码没编译。先执行一次「Rebuild Project」再打包试试。
访问 404 常见原因是路径不对或 Tomcat 没解压 WAR 包。确认访问地址包含了 WAR 包名,如果 下没有自动生成的同名文件夹,删除 WAR 包重启 Tomcat 强制解压。


