IDEA 中 Tomcat 部署 Java Web 项目(2)
场景 2:非 Maven Java Web 项目部署(以 BookShop 为例)
1. 项目特征
- 无
pom.xml
,手动管理 jar 包(如commons-codec-1.9.jar
放WEB-INF/lib
)。 - 需手动配置项目结构、依赖、Web 模块,适合简单 Demo 或旧项目迁移。
2. 关键配置步骤
(1)Project Structure 全流程配置
- 打开
File → Project Structure
,按以下标签逐步配置:① Project 标签(基础环境)
Name
:项目名(如BookShop
)。SDK
:选JDK 1.8
。Language level
:选8 - Lambdas, type annotations
。
② Modules 标签(模块与依赖
选项目模块(如 BookShop
):
- Sources:标记
src
为源码目录(蓝色),test
为测试目录(绿色,可选)。 - Dependencies:点击
+ → JARS or directories
,引入WEB-INF/lib
下的所有 jar 包(如commons-codec-1.9.jar
、mysql-connector-java-5.1.5.jar
)。
③ Facets 标签(Web 模块识别)
点击 + → Web
,关联项目的 web.xml
(路径:WebContent/WEB-INF/web.xml
):
- 确认
Deployment Descriptors
中web.xml
路径正确。 - 配置
Web Resource Directories
(如WebContent
目录,作为静态资源根路径)。
④ Artifacts 标签(部署产物配置)
点击 + → Web Application: Exploded → From Modules...
,选项目模块(如 BookShop
):
- 生成
BookShop:war exploded
(解压后的 Web 应用目录,用于 Tomcat 部署)。 - 检查
Output Layout
,确保WEB-INF/classes
(编译输出)和WEB-INF/lib
(jar 包)已包含。
选中自己的项目
2)Tomcat Server 配置(与 Maven 项目类似)
顶部 Run → Edit Configurations
→ 新建 Tomcat Server → Local
:
- Server 标签:同 Maven 项目(选 Tomcat 目录、JDK、端口)。
- Deployment 标签:
- 点击
+ → Artifact
,选BookShop:war exploded
(非 Maven 项目的解压部署包)。 - 热部署:同 Maven 项目(选
Update classes and resources
)。
(3)启动验证
- 启动 Tomcat 后,访问
http://localhost:8085/BookShop/
(路径与Application context
一致),验证页面或接口。
3.将项目部署到tomcat
在idea部署项目之后会产生一个classes文件夹,找到里面的_war_exploded文件夹
复制到tomcat的webapps里
配置server.xml文件
<Service name="Catalina1"><!-- 每个项目的端口号也要进行区分,保证不被占用 --><Connector port="8088" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URLEncoding="UTF-8"/><!-- 这里的AJP端口同样也要进行区分 --><Connector port="8010" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/><Engine name="Catalina1" defaultHost="localhost"><Realm className="org.apache.catalina.realm.LockOutRealm"><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/></Realm><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /><!-- 这里是想要部署的对应项目的名称 --><Context docBase="qcby2502_war_exploded" path="/" reloadable="true"/></Host></Engine></Service>
启动tomcat,查看日志 8088端口启动成功
验证:
部署成功