IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?

1. 前言

        说到这个问题,我也觉得很纳闷。当时我是刚从Eclipse转换到IDEA的,并正在慢慢熟悉IDEA。有一次,我运行一个JavaWeb项目时,突然想到:我把JavaWeb项目部署到Tomcat中,那Tomcat中的webapp文件夹下应该有它。当我找到这个文件夹时,很意外,竟然没有。
        然后,我意识到了Eclipse中也会有这个问题:把JavaWeb项目部署到Tomcat中,默认情况下,是会部署到wtpwebapp文件夹下的。如果想部署到webapp文件夹下,则需要修改配置。至于,如何修改,请查看 这篇博客
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        此篇 博客 详细地介绍了使用IDEA部署JavaWeb项目

2. 问题浮出水面

        在webapp文件夹下找不到自己想看到的东西,这让有“强迫症”的我些许有些抓狂。在网上查找了多篇博客,还好找到一篇 博客 解决了我的问题。

2.1 maven构建的JavaWeb项目

IDEA版本:2018.2

使用IDEA打开一个maven构建的JavaWeb项目
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        右键项目----选择“Show in Explore”,即可打开项目路径
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        打开项目编译后的文件夹(输出路径)----target文件夹。在此文件夹下,那个war包就是被部署的Web项目。(并未位于webapp文件夹下)而那个跟war包一样名称的文件夹bdtravel----它就是war包被Tomcat部署后解压产生的

IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        因为: IDEA使用Tomcat部署项目后并不会把编译后的项目复制到Tomcat的webapps目录下,但是它会把编译好的项目路径告诉Tomcat,让Tomcat来找到这个项目。其它的项目,比如 Tomcat的主页项目ROOT 是打不开的,因为IDEA 只让Tomcat运行了一个项目。

IDEA是如何把编译好的项目路径告诉Tomcat呢?
        此篇博客 给出了答案

        打开下图的ROOT.xml文件
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        这个docBase就指出了被部署的web项目的路径。Tomcat就能够找到并进行部署

2.2 普通的JavaWeb项目

        打开项目路径:
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        out文件夹就是输出路径。
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        当时Tomcat部署项目时,部署的是exploded类型的,表示项目已经打包好了的
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        部署成功了,就是生成上述的输出路径。

在ROOT.xml中查找:
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?

3. 如何解决?

1)、选择Project Structure
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
2)、选择左侧的ModulesIDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
3)、选择Artifacts
IDEA启动Web项目后,在Tomcat中的webapp文件夹下找不到?
        完成上述操作后,再次启动Tomcat,发现在webapp文件夹下可以找到。