ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Intellij将maven项目部署到Tomcat服务器过程分析

2021-10-13 14:32:34  阅读:207  来源: 互联网

标签:CATALINA Intellij Tomcat 项目 路径 maven HOME intellij


一、在Tomcat部署项目的方式:

  1. 直接部署到${TOMCAT_HOME}/webapps下

  2. 在${TOMCAT_HOME}/conf/server.xml中Host标签下添加Context标签,如:

    <Context path="/A" docBase="B" />
    
  3. 在conf/Catalina/localhost 新建ROOT.xml文件,用来链接项目。文件内容是一个Context标签,原理同方式2。

当我们在intellij中开发web项目时,能够直接运行项目,并通过客户端访问项目中的web资源。这说明intellij已经帮我们把项目部署到了Tomcat。但检查上述三种方式的路径却均未发现web项目。

于是我通过网上调研和自己实验将intellij帮我们部署项目的过程了解清楚了,写下这篇记录,引出该记录的第二个部分:

二、intellij帮我们部署项目的方式:

首先,需要了解一个前置知识:

Tomcat有两个核心目录 CATALINA_HOME和CATALINA_BASE

CATALINA_HOME是Tomcat的安装目录,如下图:

CATALINA_BASE是工作目录。当我们不使用intellij启动项目,自己运行bin文件夹里的startup.sh来启动Tomcat时,CATALINA_BASE默认就是CATALINA_HOME。

而intellij做的事情,恰恰就是修改了CATALINA_BASE,也就是说改变了Tomcat的默认工作路径。并将所需要的文件如conf复制过来。这样一来,在新的工作路径中也具备了启动Tomcat服务器的条件。这样还没完,启动Tomcat以后,intellij是怎么部署项目的呢?其实就是通过最开始提到的方法3,在conf/Catalina/localhost 新建ROOT.xml文件,用来链接项目,如下图:

所以intellij为我们部署项目其实就是运用了方法3,只不过是在一个新的工作路径下完成的操作。

在了解intellij部署项目的方式后,产生疑问:用新的工作路径,有什么好处呢?

其实Tomcat可以有多个工作路径,同时运行多个Tomcat实例(当然要记得修改端口号,避免重复)。而这些实例都共享了同一个安装路径CATALINA_HOME里的bin和lib两个核心文件夹,这样就省去了把这两个文件夹复制到所有工作路径的这种繁琐且不易维护的操作。

NOTE:一个细小发现:在maven的输出路径中,java文件都已经被编译完成,但jsp文件都还没有改变。如下图:classes文件夹里就是所有编译好的class文件

jsp文件是何时被转换成java文件以及编译成class的呢?每当我们访问一个新的jsp页面时,在Tomcat的工作目录里,就会有对应的java和class文件出现,如下图:

更多相关的有趣链接:

不通过intellij,在一个新的工作路径下运行Tomcat实例:https://blog.csdn.net/UNIONDONG/article/details/88904609?utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.no_search_link


标签:CATALINA,Intellij,Tomcat,项目,路径,maven,HOME,intellij
来源: https://www.cnblogs.com/lixingleon/p/15402002.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有