跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

IntelliJ IDEA 打包 Web 项目 WAR 包及 Tomcat 部署指南

IDEA 打包 Web 项目 WAR 包涉及 Artifacts 配置与 Tomcat 部署全流程。核心在于正确设置 Web 根目录、关联 Module Output 以导入编译类文件,并验证 lib 依赖完整性。常见问题包括依赖缺失导致 ClassNotFoundException、classes 目录为空以及部署后 404 错误,可通过补充库文件、重新编译项目及检查端口路径解决。Maven 项目可直接使用 package 命令简化流程。

LinuxPan发布于 2026/3/21更新于 2026/6/2126 浏览
IntelliJ IDEA 打包 Web 项目 WAR 包及 Tomcat 部署指南

Artifacts 配置界面示意图

在 IntelliJ IDEA 中打包 Web 项目,WAR 包的配置往往容易让人卡壳。很多教程只讲打包步骤,却忽略了部署验证和常见坑的排查。我们按步骤梳理从环境检查到最终部署验证的全过程,帮你避开大部分问题。

前置准备:确认基础配置

开始之前,先检查三个关键前提,缺失任一环节都可能导致后续操作失败。

首先打开项目结构(快捷键 Shift+Ctrl+Alt+S),在「Modules」中查看模块类型是否为「Web Application」。如果不是,需右键模块→「Add Framework Support」→勾选「Web Application」。

其次,在「Project Structure」→「Project」中,确认「Project SDK」已选择本地 JDK(建议 1.8 及以上),「Project language level」与 JDK 版本匹配。最后确保本地已安装 Tomcat(建议 8.x/9.x 版本),并记住其安装路径(如 D:\apache-tomcat-9.0.60),后续部署需用到。

核心配置:Artifacts 配置

这是打包的核心,按'新建工件→补全目录→关联编译输出'三步拆解,每步都要理解目的,避免盲目点击。

1. 新建 Web Archive 工件

打开「Project Structure」→选择左侧「Artifacts」→点击左上角「+」号→依次选择「Web Application: Archive」→「Empty」。这一步是创建一个空的 WAR 包模板,后续将项目文件逐步添加进去。

2. 配置 Web 根目录

在「Artifacts」右侧「Output Layout」面板中,右键空白处→选择「Add Content Directory」→选中项目的 Web 根目录(通常名为 WebContent 或 webapp,需包含 index.html、WEB-INF 文件夹)。Web 根目录是对外访问的入口,缺失会导致部署后找不到页面。

3. 补全 WEB-INF/classes 目录

展开已添加的 Web 根目录→找到「WEB-INF」文件夹(若没有则右键创建)。右键「WEB-INF」→「New Folder」→命名为 classes(必须小写)。该目录用于存放编译后的 .class 文件,缺失会导致 Tomcat 无法加载业务逻辑代码。

4. 关联 Module Output

右键「classes」目录→选择「Add Module Output」→在弹窗中选择当前 Web 项目的模块(如 demo-web)→点击「OK」。这样可以将项目编译后的 .class 文件自动同步到 classes 目录,无需手动复制,避免遗漏。

打包与验证

执行打包

点击顶部菜单栏「Build」→「Build Artifacts」→在弹窗中选择已配置的 Artifact(如 unnamed:war)→选择「Build」(首次打包)或「Rebuild」(更新后重新打包)。完成后,WAR 包默认存放在项目根目录下的 out\artifacts\ 文件夹中。

验证有效性

用压缩软件打开 WAR 包,检查三点:

  1. 根目录下是否有 index.html 等页面文件。
  2. WEB-INF 下是否有 classes 目录,且内有 .class 文件。
  3. WEB-INF 下是否有 web.xml(传统项目需包含,注解配置可无)。 提前排查缺陷,能减少后续排错时间。

Tomcat 部署流程

  1. 将验证通过的 WAR 包复制到 Tomcat 的 webapps 目录下。
  2. 进入 Tomcat 的 bin 目录,双击 startup.bat(Windows)或执行 ./startup.sh(Linux/Mac)启动。
  3. 访问测试:浏览器输入 http://localhost:8080/[WAR 包名]/index.html(如 demo.war,路径为 http://localhost:8080/demo/index.html),显示页面即成功。

若启动失败,可查看 logs 目录下的 catalina.out 文件,排查端口占用或依赖冲突。

常见问题解决方案

WAR 包内无 lib 依赖

现象:部署后报错'ClassNotFoundException'。 原因:Artifacts 配置中未添加第三方库。 解决:在「Artifacts」→「Output Layout」中,右键「WEB-INF」→「Add Library Files」→勾选依赖库(如 Spring Core、MyBatis)→重新打包。

classes 目录为空

现象:WEB-INF/classes 下无文件。 原因:未关联 Module Output 或未编译。 解决:重新执行关联步骤,先执行「Build」→「Rebuild Project」编译后再打包。

部署后访问 404

现象:页面找不到。 原因:WAR 包未解压、路径错误或端口占用。 解决:

  1. 检查 webapps 目录,若未自动解压,删除 WAR 包重启 Tomcat。
  2. 核对路径是否包含 WAR 包名。
  3. 检查 conf/server.xml 中的 <Connector port="8080" 是否被占用,修改端口后重启。

场景扩展

Maven 项目打包

Maven 项目更简洁,无需手动配置 Artifacts。打开右侧「Maven」面板→展开项目→「Lifecycle」→双击「package」,WAR 包会自动生成在 target 目录下。

如需自定义名称,在 pom.xml 中添加:

<build>
    <finalName>my-demo</finalName>
</build>

多模块项目

多模块项目(如父模块下有服务模块和 Web 模块),仅需对 Web 模块执行上述打包步骤,无需处理其他模块。

目录

  1. 前置准备:确认基础配置
  2. 核心配置:Artifacts 配置
  3. 1. 新建 Web Archive 工件
  4. 2. 配置 Web 根目录
  5. 3. 补全 WEB-INF/classes 目录
  6. 4. 关联 Module Output
  7. 打包与验证
  8. 执行打包
  9. 验证有效性
  10. Tomcat 部署流程
  11. 常见问题解决方案
  12. WAR 包内无 lib 依赖
  13. classes 目录为空
  14. 部署后访问 404
  15. 场景扩展
  16. Maven 项目打包
  17. 多模块项目
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 应用开发的技术深度:超越 API 调用的工程实践
  • Java Swing 文本域 JTextArea 基础交互示例
  • 基于 AutoGen 框架快速构建 AI Agent 实现自动化绘图任务
  • 低代码平台构建服装 ERP 系统实战:从设计到自动化流程
  • AI 大模型技术栈与学习路线整理
  • Spring Bean 作用域、生命周期与自动装配源码解析
  • Python接单指南
  • DFS 与 BFS 实战:从图论遍历到岛屿问题(C++ 版)
  • MCP Server 实现 Excel 表格一键生成可视化图表 HTML 报告
  • AI 在金融领域的应用开发与实战
  • PX4 开源飞控系统概述与架构解析
  • 二分算法实战:A-B 数对与高考志愿问题解析
  • 昇腾 NPU 部署 Llama 2 模型的性能测试与优化实践
  • Youtu-VL-4B-Instruct 基于 Gradio 扩展 WebUI 图片批处理
  • Python 数据分析基础:NumPy 核心用法详解
  • 单链表综合练习:删除指定节点、反转链表与查找中间节点
  • 算法实战:模幂、构造等经典题型精析
  • 使用 Python 和 Pillow 制作国庆专属国旗头像
  • SubtitleEdit Purfview Faster Whisper XXL 引擎安装失败解决方案
  • C++ string 迭代器、初始化及常用函数详解

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online