• 十、springboot之web开发打包生产


    打成war包

    打成war包一般可以分两种方式来实现,第一种可以通过eclipse这种开发工具来导出war包,另外一种是使用命令来完成,这里主要介绍后一种

    1.修改配置文件

      maven:pom文件

    <packaging>war</packaging>

      gradle:build.gradle文件

    apply plugin: 'war'

    2.打包时排除tomcat

      maven:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

    在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。

      gradle:

    dependencies {
        compile("org.springframework.boot:spring-boot-starter-web:1.4.2.RELEASE"){
            exclude mymodule:"spring-boot-starter-tomcat"
        }
    }

    3.注册启动类

      创建ServletInitializer.java,继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。外部web应用服务器构建Web Application Context的时候,会把启动类添加进去。

    public class ServletInitializer extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(MyApplication.class);
        }
    
    }

      SpringBootServletInitializer的执行过程,简单来说就是通过SpringApplicationBuilder构建并封装SpringApplication对象,并最终调用SpringApplication的run方法的过程。

        参考:spring-boot-使用外置的Servlet容器学习

        springboot启动过程详解:https://www.jianshu.com/p/cb5cb5937686

    4.build

      maven:

    cd 项目跟目录(和pom.xml同级)
    mvn clean package
    ## 或者执行下面的命令
    ## 排除测试代码后进行打包
    mvn clean package  -Dmaven.test.skip=true

    会在target目录下生成:项目名+版本号.war文件,拷贝到tomcat服务器中启动即可。

      gradle:

    gradle build

    war会生成在buildlibs 目录下。

    参考:

      http://www.ityouknow.com/springboot/2017/05/09/springboot-deploy.html

  • 相关阅读:
    绿有四季关于需求沟通
    模板引擎开发(二)值标签的处理
    Jquery插件浮动广告
    项目经理的“势能”培养
    模板引擎开发(一)
    c#读取apk 信息
    golang读取文件信息插入mongodb
    白话MongoDB(二)(转载)
    golang 读取mongob数据写入sqlserver
    golang 通用Contains方法
  • 原文地址:https://www.cnblogs.com/soul-wonder/p/9004092.html
Copyright © 2020-2023  润新知