• 将SpringBOOT项目 打成 war 包 并 部署到 Tomcat


    当前环境:Windows

    Tomcat版本:tomcat8.5

    SpringBoot版本: 2.2.3

    1. pom.xml 修改打包方式

        <packaging>warpackaging>

    2.加入SpringBoot打包插件(pom.xml)

    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.springframework.bootgroupId>
    5. <artifactId>spring-boot-maven-pluginartifactId>
    6. plugin>
    7. plugins>
    8. build>

    3. 在打包插件中加入配置SpringBoot的入口类的标签名

    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.springframework.bootgroupId>
    5. <artifactId>spring-boot-maven-pluginartifactId>
    6. <configuration>
    7. <fork>truefork>
    8. <jvmArguments>Dfile.encoding=UTF-8jvmArguments>
    9. <mainClass>com.ApplicationmainClass>
    10. configuration>
    11. plugin>
    12. plugins>
    13. build>

    4.依赖的修改(pom.xml)

    因为打war在tomcat部署,我们需要将内嵌的tomcat去掉,加入你的springboot有jsp文件的话还要将tomcat解析jsp的依赖去掉。

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-webartifactId>
    4. dependency>
    5. <dependency>
    6. <groupId>org.apache.tomcat.embedgroupId>
    7. <artifactId>tomcat-embed-jasperartifactId>
    8. <scope>providedscope>
    9. dependency>
    10. <dependency>
    11. <groupId>org.springframework.bootgroupId>
    12. <artifactId>spring-boot-starter-tomcatartifactId>
    13. <scope>providedscope>
    14. dependency>

    provided : 这个scope的意思在当前环境可以使用,但是不参与打包!!!

    5. 修改主配置类(用于依赖外部tomcat)

    1. @SpringBootApplication
    2. public class Application extends SpringBootServletInitializer {
    3. @Override //这个表示使用外部的tomcat容器
    4. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    5. // 注意这里要指向原先用main方法执行的启动类
    6. return builder.sources(Application.class);
    7. }
    8. public static void main(String[] args) {
    9. SpringApplication.run(Application.class, args);
    10. }
    11. }

    6. 测试war包

    将war包放入tomcat下的webapps下面,我们启动tomcat:

    7. 启动tomcat

     注意:war包部署的时候,tomcat默认将你的路径变成你的war的路径。

    访问我们的测试接口

     成功

    注意:war部署的时候 tomcat默认将你的根路径变成你的war包的名称

    例如 你的war是 test.war
    那么部署的时候访问接口必须是
    http://localhost:8080/test/

    8.tomcat访问配置

    直接打包,上传到服务器的tomcat的webapps下,启动后自动会解压,这里需要注意的一点就是需要修改tomcat配置文件server.xml,添加如下内容:

    <Context path="/" docBase="redis_tools-1.0-SNAPSHOT" debug="0" privileged="true"/>

    注:redis_tools-1.0-SNAPSHOT设置为包名即可,其他的地方都无需修改,启动后访问:
    http://127.0.0.1:8080/redis_tools-1.0-SNAPSHOT

  • 相关阅读:
    ROW_NUMBER 开窗函数优化方案(Oracle && KingBase 性能比对)
    SpringBoot重试策略Retry
    社科研究中的问卷设计详解
    OpenJudge NOI 2.1 15:Counterfeit Dollar
    数据挖掘入门项目二手交易车价格预测之数据分析
    qt的鼠标事件
    二叉搜索树
    城商行本地高可用建设实践与落地效果分享
    【Python数学练习1】
    Command CodeSign failed with a nonzero exit code
  • 原文地址:https://blog.csdn.net/weixin_42405670/article/details/127960876