在idea部署时会改变tomcat 的catalina.base的路径,以本机(mac)为例,catalina.base的路径为:
/Users/uc/Library/Caches/IntelliJIdea2018.2/tomcat/Unnamed_servletDemo
此目录下包含配置信息,其中server.xml的片段为:
<Host name="localhost" appBase="/Users/uc/program/apache-tomcat-9.0.11/webapps" unpackWARs="true" autoDeploy="true" deployOnStartup="false" deployIgnore="^(?!(manager)|(tomee)$).*">
可以看到deployIgnore中会忽略大部分的文件,而在配置目录的子目录:Catalina/localhost 中包含一个ROOT.xml文件,此文件信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="/Users/uc/project/servletDemo/target/servletDemo" />
可以看到docBase正式指向了idea中当前的项目所在路径。
ps:
一般tomcat部署一个应用有3种方式:
1.最常用的方式,是把它放到catalina.home的webapps下面去,但是这种方式太过死板。
2.在server.xml的host标签下,添加<Context docBase="F:/aa" reloadable="false" path="/aa"/>
3.也就是上面的方式通过在Catalina/localhost目录下,添加一个配置文件来部署指定位置的应用。(文件的名字如果不是ROOT.xml,则文件名代表访问路径,也就是 path。