idea运行Web项目时部署位置及部署到本地Tomcat

一、idea运行Web项目时部署的位置

某天在idea中运行web项目,把project部署到Tomcat中,运行后去Tomcat目录下看,根本找不到部署的项目,怎么肥事???

1. 项目Tomcat配置文件

经过了解后,在idea中部署项目到Tomcat,在运行时idea不会把项目放到Tomcat webapps目录下,而是复制一份足够的配置文件到 ${user.home}/.IntelliJIdea/system/tomcat 目录下:
idea运行Web项目时部署位置及部署到本地Tomcat_第1张图片

也就是说每个项目都有属于自己的一份Tomcat配置,互不干扰。
每个项目的配置文件夹中都有一个 /conf/Catalina/localhost/ROOT.xml 文件,内容如下:

<Context path="" 
docBase="E:\Z.K soft\idea-workspace\ssm\ssm_parent\ssm_web\target\ssm_web-1.0-SNAPSHOT" />

其中path是指在访问此项目时,是否需要添加额外的路径,如果为空,则直接使用域名或者ip就可以访问到该项目:127.0.0.1/localhost/域名

path值可以在idea中 Run/Debug Configurations 配置,配置后项目访问路径为 http://localhost:端口号/ssm
idea运行Web项目时部署位置及部署到本地Tomcat_第2张图片

docBase是指要运行的项目的部署位置,E:\Z.K soft\idea-workspace\项目 就是我的项目源代码的位置,target是由maven构建后生成的,E:\Z.K soft\idea-workspace\项目\target\xxx-web-1.0 目录就是maven build完成后生成的,目录结构如下:
idea运行Web项目时部署位置及部署到本地Tomcat_第3张图片

2. 项目运行过程

idea启动tomcat的命令为:Run / Debug
idea运行Web项目时部署位置及部署到本地Tomcat_第4张图片

也就是说,整个项目运行过程为:首先maven build项目,将构建结果写到项目的target目录下,然后idea复制一份Tomcat的配置文件到${user.home}/.IntelliJIdea/system/tomcat 中,之后启动Tomcat安装目录下的catalina.bat文件,Tomcat读取配置文件,找到项目位置,然后就运行起来了。

maven build后默认输出路径(该项目的target目录):
idea运行Web项目时部署位置及部署到本地Tomcat_第5张图片


二、idea部署Web项目到本地Tomcat

前言:不部署在Tomcat下,Web项目依然能正常启动;如果需要在本地Tomcat的webapps下存储和查看文件,就需要将web项目部署在本地Tomcat下。

1. Tomcat目录结构
idea运行Web项目时部署位置及部署到本地Tomcat_第6张图片

2. 部署到 webapps 目录

打开Run/Debug Configurations,选择Deployment添加 war exploded,再点击铅笔头(修改)

war/war exploded区别:war exploded模式是直接把文件夹、jsp页面等等移到Tomcat 部署文件夹下面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。而选择war包启动,idea会将编译后的项目打成war包,然后tomcat会去解压war,启动速度会比war explode慢很多。
idea运行Web项目时部署位置及部署到本地Tomcat_第7张图片

注意output directory(输出路径),默认是项目target下,需要修改为本地webapps下,如:E:\apache-tomcat-8.5.11\webapps\ssm
idea运行Web项目时部署位置及部署到本地Tomcat_第8张图片

然后,此时只是确定项目编译输出路径为E:\apache-tomcat-8.5.11\webapps\ssm,还需要把项目放到输出路径里;在Available Elements?下选择项目,右键点击put into output root,重新启动即可。
idea运行Web项目时部署位置及部署到本地Tomcat_第9张图片

3. 部署后的目录结构
idea运行Web项目时部署位置及部署到本地Tomcat_第10张图片

你可能感兴趣的:(Java,EE)