• 十、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

  • 相关阅读:
    动网16位gb2312md5加密
    开发windows7侧边栏小工具
    MVC文档地址
    关闭FCNs(文件修改监控)
    内存管理
    android笔记一(Button)
    android笔记五ImageButton
    android笔记三FrameLayout
    linux内核各组件的功能介绍
    C++面试题
  • 原文地址:https://www.cnblogs.com/soul-wonder/p/9004092.html
Copyright © 2020-2023  润新知