关于tomcat热部署

2,973 阅读1分钟

总结:

其实啥都不用干。直接启动tomcat,把war包丢到tomcat的webapps目录下就可以了。访问路径就是war包的名称。
http://localhost:8080/war包名称/

查看tomcat/conf/server.xml。

    详情查看官网 点翻译:https://tomcat.apache.org/tomcat-9.0-doc/deployer-howto.html

autoDeploy

true: 当一个.war文件进入到webapps目录下。自动重启tomcat,解压war包。实现自动部署。
false: 不会自动重启并部署。

unpackWARs:true

true: 当同名的war包被替换时,也会自动重启并部署。
flase: 新war包才会自动重启并部署。

查看 context.xml

详情查看官网 点翻译:https://tomcat.apache.org/tomcat-9.0-doc/config/context.html

docBase 项目或者war包路径。没必要,会自动根据war包名称推算出来

path 设置访问路径。也没必要,会自动根据docBase的路径推算出来

reloadable

true:  启动监视类修改。修改后重新加载文件,不会重新部署。
false: 关闭监视类修改。

遇到的坑。

1: 不要在server.xml的host标签下写context.
会出现一大堆问题。比如:会部署两次。配置path后路径失效啊。配置docBase后项目启动不起来啊,访问404啊。
2. 不需要配置什么奇奇怪怪的。直接吧war包扔到webapps下就可以。
3. 具体还有那些东西,请到官网去看。

题外话。Springboot打成war包。

pom.xml文件中:
    <packaging>jar</packaging>改成 <packaging>war</packaging>
    <!--屏蔽自带Springboot自带的 tomcat-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!--可将Springboot打包成可运行的jar或者war包-->
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
启动类中:继承 SpringBootServletInitializer。然后实现configure。