IDEA 中 Tomcat 部署 Java Web 项目
一、环境准备(通用基础)
1. 核心环境
- JDK:确保安装
JDK 1.8+
(示例用1.8 Oracle OpenJDK
),通过java -version
验证。 - Tomcat:本地安装
Tomcat 8.5+
(如apache-tomcat-8.5.29
),记住安装目录(后续配置用)。
二、场景 1:Maven 多模块 Java Web 项目部署
1. 项目特征
- 含
pom.xml
,通过 Maven 管理依赖和多模块(如父模块hami_parent
+ 子模块hami_protal
)。 - 构建流程:
clean
→install
自动编译、打包,适合复杂聚合项目。
依次为每个部分添加本地tomcat-server
修改名字,热部署,端口号,jdk
这里添加相应的
点击apply ->ok 运行tomcat
(2)Maven 构建:生成 War 包
- 右侧打开 Maven 面板,找到父模块(如
hami_parent [root]
):
- 先双击
Lifecycle → clean
(清理旧构建产物)。 - 再双击
Lifecycle → install
(编译代码 → 打包成war
→ 安装到本地仓库)。
- 控制台输出
BUILD SUCCESS
后,检查子模块target
目录,生成xxx.war
和xxx.war exploded
(部署用解压包)。
(3)将生成的war包与jar包一并复制到tomcat的webapps路径下
4)配置server.xml文件
将下面的代码插入到server.xml文件中,注意这是我们自定义的<Service>,要与 自带的分开,防止嵌套
<Service name="Catalina1"><!-- 每个项目的端口号也要进行区分,保证不被占用 --><Connector port="8083" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URLEncoding="UTF-8"/><!-- 这里的AJP端口同样也要进行区分 --><Connector port="8011" 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="hami_console-1.0-SNAPSHOT" path="/" reloadable="true"/></Host></Engine></Service><Service name="Catalina2"><!-- 每个项目的端口号也要进行区分,保证不被占用 --><Connector port="8084" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URLEncoding="UTF-8"/><!-- 这里的AJP端口同样也要进行区分 --><Connector port="8012" 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="hami_file-1.0-SNAPSHOT" path="/" reloadable="true"/></Host></Engine></Service><Service name="Catalina3"><!-- 每个项目的端口号也要进行区分,保证不被占用 --><Connector port="8085" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URLEncoding="UTF-8"/><!-- 这里的AJP端口同样也要进行区分 --><Connector port="8013" 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="hami_protal-1.0-SNAPSHOT" path="/" reloadable="true"/></Host></Engine></Service>
5)启动tomcat
端口号启动成功:
并且 webapps目录下生成了相应的war,jar包目录,现在我们就可以 url直接访问我们的项目
部署成功