Java项目不安装Tomcat插件,而是通过Maven配置tomcat7-maven-plugin(如2.2版)或IDE集成本地Tomcat实例;前者轻量适合WAR调试,后者支持完整容器功能;官方已弃用tomcat*-maven-plugin,推荐Spring Boot内嵌或exec-maven-plugin调用。

Java 项目本身不“安装 Tomcat 插件”,真正需要的是在构建工具(如 Maven 或 Gradle)中配置 tomcat7-maven-plugin 或 tomcat9-maven-plugin,或在 IDE(如 IntelliJ IDEA、Eclipse)中集成 Tomcat 运行时。直接往 JDK 或 JRE 里装“插件”是误解。
用 Maven 配置 tomcat7-maven-plugin 启动 Web 应用
这是最轻量的本地调试方式,适合传统 WAR 项目,无需手动下载/解压 Tomcat。
- 仅支持 Servlet 3.0 及以下(
tomcat7-maven-plugin对应 Tomcat 7;若用 Tomcat 8/9,需换用tomcat8-maven-plugin或社区维护的org.apache.tomcat.maven:tomcat7-maven-plugin:2.2兼容版) -
plugin必须声明在中,且需指定中的port和path - 执行
mvn tomcat7:run启动,但该命令不热部署 class 文件,改 Java 类需重启;改 JSP 可自动刷新
org.apache.tomcat.maven tomcat7-maven-plugin 2.2 8080 /myapp
IntelliJ IDEA 中添加本地 Tomcat Server 实例
适用于需要完整容器能力(如 JNDI、Realm、多 Context)、调试 Filter/Listener、或运行非 Maven 管理的老项目。
- 必须先从 tomcat.apache.org 下载二进制 zip/tar.gz(不要用 Windows Service Installer 版)
- IDEA 中:File → Project Structure → Modules → Dependencies → + → JARs or directories → 指向你解压后的
tomcat-x.x.xx/lib目录(仅此目录,不要加bin或conf) - Run → Edit Configurations → + → Tomcat Server → Local → Configure… → Application server 选你解压的根目录(如
C:\apache-tomcat-9.0.83) - Deployment 标签页里点 + → Artifact → 选你的 WAR exploded,否则启动后访问 404
为什么 tomcat9-maven-plugin 官方已弃用
Apache 官方自 2018 年起停止维护所有 tomcat*-maven-plugin,最后版本为 tomcat7-maven-plugin 2.2(支持到 Tomcat 8.5)。后续生态转向:
立即学习“Java免费学习笔记(深入)”;
- Spring Boot 内嵌 Tomcat(
spring-boot-starter-web自动拉取tomcat-embed-core) - 使用
exec-maven-plugin调用catalina.sh run启动已配置好的本地 Tomcat 实例 - Gradle 用户倾向用
gradle-tomcat-plugin(已归档)或直接用jetty-plugin替代
强行找 “tomcat9-maven-plugin” 的 jar 包,大概率是第三方 fork,无安全更新、不兼容 JDK 17+、且无法处理 jakarta.servlet.* 命名空间迁移。
常见 404 / 403 错误的根源位置
不是插件没装好,而是路径或权限配置错位:
- WAR exploded 部署时,IDEA 默认把
webapp/当作 root,但实际访问路径由Deployment location和Application context共同决定 —— 若 context 设为/,却把 artifact 部署到out/artifacts/myapp_war_exploded,则必须确保该目录下有index.jsp或WEB-INF/web.xml - Tomcat 9+ 默认禁用
listings,访问空目录返回 403;需在$CATALINA_HOME/conf/web.xml中取消注释DefaultServlet的listingsinit-param 并设为true - Maven plugin 启动时报
java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina:说明插件版本与 Tomcat 大版本不匹配,或tomcatHome指向了错误目录(比如指向了bin子目录)
Tomcat 不是“插件”,它是独立进程;所谓“集成”,本质是构建工具调用其 API 或操作系统命令。路径、类路径、Servlet 规范版本、上下文路径这四者对不上,比插件没装更常导致失败。










