idea运行web项目时,部署的位置

 

以前一直很好奇,在idea中运行tomcat,把项目部署到其中,运行起来,然后我去tomcat目录下去看,根本找不到我部署的项目 那我的项目是咋运行的啊… - -

后来我就查啊查 ,纠结啊纠结,然后大概知道是咋回事了:

在idea中配置的tomcat,在运行时idea不会把项目放到该路径下,而是复制一份足够的配置文件,到 ${user.home}/.IntelliJIdea/system/tomcat 目录下:

这里写图片描述

也就是说每个项目都有属于自己的一份tomcat配置,互不干扰。

每个项目的配置文件夹中有一个 /conf/Catalina/localhost/ROOT.xml 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="D:\work\项目\target\xxx-web" />
  • 1
  • 2

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

这里写图片描述

docBase是指要运行的项目的部署位置,D:\work\项目 就是我的项目源代码的位置,target是由maven构建后生成的,D:\work\项目\target\xxx-web 目录就是maven build完成之后生成的项目,结构如下:

这里写图片描述

而idea启动tomcat的命令为:

这里写图片描述

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

具体可以看下idea启动项目是打印的几个参数

CATALINA_BASE:指向${user.home}/.IntelliJIdea/system/tomcat下对应项目的文件夹,这里放着tomcat启动需要的而idea分配给每个启动项目特有的conf、work、log等文件夹

CATALINA_HOME:指向使用的tomcat的文件夹,使用tomcat公用的bin,jar等文件夹

CATALINA_TMPDIR:指向tomcat的文件夹下的temp文件夹,一般是使用CATALINA_BASE下的temp文件夹,idea这里用的是tomcat自己的

JRE_HOME:指向idea配置的jdk

CLASSPATH:tomcat文件夹下bin目录下的bootstrap.jar和tomcat-juli.jar

猜你喜欢

转载自xiaoxiaoher.iteye.com/blog/2414906