1 Idea 中的 web 项目部署
在 Idea 中默认的并不会把 web 项目真正的部署到 Tomcat 的 webapps 目录中,而是通过为每个 web 项目创建一个独立的 Tomcat 副本并在 Tomcat 副本中通过的 Tomcat 的 Context组件完成项目的目录指定,在 Context 组件的 docBase 属性中会指定 Idea 对 web 项目编译后的目录 out/artifacts/.....。
1.1 默认部署方式
Idea 会在 C:\Users\Administrator\.IntelliJIdea2019.3\system\tomcat 中为每个 Web 项目创建一个独立的 Tomcat 副本。
C:\Users\Administrator\.IntelliJIdea2019.3\system\tomcat\Tomcat_9_0_34_demo\conf\Catalina\localhost 目录中生成一个该项目的 xml 文件名称为:”项目名.xml”。
内容为:
在 xml 文件中指定 web 项目编译完后的 artifacts 目录的位置,也就是IDEA编译生成的编译后的文件位置。
Idea 通过执行 Tomcat 的 catalina.bat 启动脚本启动 Tomcat,通过启动参数来指定启动
Tomcat 副本运行指定目录中的 web 项目。
Idaa 在启动 Tomcat 之前会先在操作系统中设置一些临时环境变量,这些变量会被 Tomcat 的启动脚本所读取。
CATALINA_BASE:是 Tomcat 副本的工作目录
CATALINA_HOME:是 Tomcat 的安装目录
在 Catalina.bat 启 动 脚 本 运 行 时 , 会 先 去 判 断 脚 本 中 的 CATALINA_HOME 以 及 CATALINA_BASE 是否有默认值,如果没有则直接读取系统环境变量中的值作为他们的默认 值。由于 Idea 在启动 Tomcat 之前已经设置了临时环境变量,所以 tomcat 在启动后就会运 行部署在 Tomcat 副本中的 web 项目。
1.2 测试将 web 项目部署到 Tomcat 的 webapps 中
点击项目结构选项
指定输出 artifacts 的目录为 Tomcat 的 webapps 中的 demo 目录。
启动 Tomcat,查看 demo 目录中的内容。
在 tomcat 的 webapps 中创建一个目录。
但是这也不是真正的部署到原先的tomcat,而还是一个副本只是改变了索引位置而已。