idea配置tomcat里你不知道的小秘密

首先

提一个大家都常见,却都不是很知晓的问题。就是war和war exploded的区别是什么?

img

1.war模式:将WEB 工程以包的形式上传到服务器;

2.war exploded模式: 将WEB 工程以当前文件夹的位置关系上传到服务器;

也就是说:

1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布。

2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

3)在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。

第一种war形式

我们设置好war包形式,然后运行tomcat

img

第二种war exploded形式

再以war exploded的形式运行tomcat
img

扫描二维码关注公众号,回复: 10079814 查看本文章

结论我们发现两种形式,都没有在tomcat下的wabapps下发现war包。

img

这也就是我要提的小秘密,也可能只有我自己认为是个小秘密,哈哈然后我就思考,为什么会出现这样的问题,使用tomcat配置了呀,运行的war包怎么没有部署在tomcat下。有点违背最初使用eclipse的时候的套路呀!

经过调查:发现在idea中配置的tomcat,在运行时idea不会把项目放到自己的webapps路径下,而是在${user.home}/.IntelliJIdea/system/tomcat 目录下。

比如我的是在:C:\Users\georgedage.IntelliJIdea2018.3\system\tomcat\Unnamed_epidemic_management_system

docBase是指要运行的项目的部署位置,D:\java\IDEAWorkSpace\项目 就是项目源代码的位置,target是由maven构建后生成的.

所以最终的解惑就在于:

1.首先Intellij会为每个web项目建立一个单独的文件夹,以“Unnamed_项目名”命名(可在.idea/workspace.xml中修改)。

2.在每次启动项目时,它先将tomcat目录下原始的CATALINA_BASE目录拷贝一份到该目录下,也就是将当前tomcat的配置文件拷贝到“Unnamed_项目名”文件夹下。 _

3.然后将CATALINA_BASE的路径修改为该目录的路径,再在 Unnamed项目名/conf/Catalina/localhost下添加项目的配置文件ROOT.xml。

4.最后启动tomcat,tomcat除了会启动webapps下应用外还会加载/conf/Catalina/localhost下配置的应用,而Intellij就是通过这种方式“隐蔽”地加载web项目。

发布了837 篇原创文章 · 获赞 752 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/qq_41946557/article/details/104923164