IntelliJ如何与Tomcat完成项目部署

版权声明:作者:N3verL4nd 出处: https://blog.csdn.net/lgh1992314/article/details/79912096

CATALINA_BASE 与 CATALINA_HOME 的区别:

CATALINA_HOME 是 Tomcat 的安装目录,CATALINA_BASE 是 Tomcat 的工作目录。
如果我们想要运行多个 Tomcat 实例,但是不想安装多个 Tomcat 软件副本。那么我们可以配置多个工作目录,每个运行实例独占一个工作目录,但是共享同一个安装目录。

Tomcat 每个运行实例需要使用自己的conf、logs、temp、webapps、work目录,因此 CATALINA_BASE 就指向这些目录。

这里写图片描述

运行多个Tomcat实例:
这里写图片描述

D:\N3verL4nd\Desktop\Web>tree /f
卷 本地磁盘 的文件夹 PATH 列表
卷序列号为 00000200 0006:08B0
D:.
│  start.bat
│
├─conf
│      catalina.policy
│      catalina.properties
│      context.xml
│      logging.properties
│      server.xml
│      tomcat-users.xml
│      tomcat-users.xsd
│      web.xml
│
├─logs
├─temp
├─webapps
│  └─ROOT
│          index.jsp
│
└─work

修改 conf 文件夹下的 server.xml

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8105" shutdown="SHUTDOWN">
  <!--
    ...
   -->
  <Service name="Catalina">
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8543" />
    <Connector port="8109" protocol="AJP/1.3" redirectPort="8543" />
  </Service>
  <!--
    ...
   -->
</Server>

当前目录下建立批处理文件,用以启动 Tomcat

set "CATALINA_BASE=%cd%"

set "CATALINA_HOME=D:\Java\Tomcat\apache-tomcat-8.0.50"

set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"

call "%EXECUTABLE%" start

IntelliJ 的实现与上述基本类似。

在 IntelliJ 启动 Tomcat,查看日志:

D:\Java\Tomcat\apache-tomcat-8.0.50\bin\catalina.bat run
[2018-04-12 12:36:08,879] Artifact Gradle : cn.bjut : ServletDemo-1.0-SNAPSHOT.war (exploded): Waiting for server connection to start artifact deployment...
Using CATALINA_BASE:   "D:\Intellij\.IntelliJIdea\system\tomcat\Unnamed_ServletDemo_2"
Using CATALINA_HOME:   "D:\Java\Tomcat\apache-tomcat-8.0.50"
Using CATALINA_TMPDIR: "D:\Java\Tomcat\apache-tomcat-8.0.50\temp"
Using JRE_HOME:        "D:\Java\JDK\jdk1.8.0_151"
Using CLASSPATH:       "D:\Java\Tomcat\apache-tomcat-8.0.50\bin\bootstrap.jar;D:\Java\Tomcat\apache-tomcat-8.0.50\bin\tomcat-juli.jar"

D:\Intellij\.IntelliJIdea\system\tomcat\Unnamed_ServletDemo_2 就是一个 Tomcat 实例。

并且D:\Intellij\.IntelliJIdea\system\tomcat\Unnamed_ServletDemo_2\conf\Catalina\localhost 目录下有一个WEB.XML

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Web" docBase="D:\N3verL4nd\Desktop\ServletDemo\build\libs\exploded\ServletDemo-1.0-SNAPSHOT.war" />

以上的代码的意思是:http://localhost:8080/Web/ 访问的是docBase 指定的 war 包。

猜你喜欢

转载自blog.csdn.net/lgh1992314/article/details/79912096
今日推荐