转载:https://me.csdn.net/lairikeqi
一、idea运行Web项目时部署的位置
某天在idea中运行web项目,把project部署到Tomcat中,运行后去Tomcat目录下看,根本找不到部署的项目,怎么肥事???
1. 项目Tomcat配置文件
经过了解后,在idea中部署项目到Tomcat,在运行时idea不会把项目放到Tomcat webapps目录下,而是复制一份足够的配置文件到 ${user.home}/.IntelliJIdea/system/tomcat
目录下:
也就是说每个项目都有属于自己的一份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" />
- 1
- 2
其中path是指在访问此项目时,是否需要添加额外的路径,如果为空,则直接使用域名或者ip就可以访问到该项目:127.0.0.1/localhost/域名
path值可以在idea中 Run/Debug Configurations
配置,配置后项目访问路径为 http://localhost:端口号/ssm
docBase
是指要运行的项目的部署位置,E:\Z.K soft\idea-workspace\项目
就是我的项目源代码的位置,target是由maven构建后生成的,E:\Z.K soft\idea-workspace\项目\target\xxx-web-1.0
目录就是maven build完成后生成的,目录结构如下:
2. 项目运行过程
idea启动tomcat的命令为:Run / Debug
也就是说,整个项目运行过程为:首先maven build项目,将构建结果写到项目的target目录下,然后idea复制一份Tomcat的配置文件到${user.home}/.IntelliJIdea/system/tomcat
中,之后启动Tomcat安装目录下的catalina.bat文件,Tomcat读取配置文件,找到项目位置,然后就运行起来了。
maven build后默认输出路径(该项目的target目录):
二、idea部署Web项目到本地Tomcat
前言:不部署在Tomcat下,Web项目依然能正常启动;如果需要在本地Tomcat的webapps下存储和查看文件,就需要将web项目部署在本地Tomcat下。
1. Tomcat目录结构
2. 部署到 webapps 目录
打开Run/Debug Configurations
,选择Deployment添加 war exploded,再点击铅笔头(修改)
war/war exploded
区别:war exploded模式是直接把文件夹、jsp页面等等移到Tomcat 部署文件夹下面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。而选择war包启动,idea会将编译后的项目打成war包,然后tomcat会去解压war,启动速度会比war explode慢很多。
注意output directory
(输出路径),默认是项目target下,需要修改为本地webapps下,如:E:\apache-tomcat-8.5.11\webapps\ssm
然后,此时只是确定项目编译输出路径为E:\apache-tomcat-8.5.11\webapps\ssm
,还需要把项目放到输出路径里;在Available Elements?下选择项目,右键点击put into output root,重新启动即可。
3. 部署后的目录结构