zoukankan      html  css  js  c++  java
  • 十、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

  • 相关阅读:
    C# 类 根据属性名称取属性值
    WebService WCF 契约的解释
    NHibenate xml 数据库配置 说明
    使Spring.NET的IOC容器支持动态加载的程序集
    知识点滴:持久层,DAO,API,DAL,BLL,DLL,csproj,sln
    spring.net nhibernate 分布布式事务(下)
    简明教程 C# Webservice实例
    C# 中 以 &# 打头的 编码 是: html 编码解码地址 转换
    spring.net 结合简单三层实例
    关于行号输出的简单命令
  • 原文地址:https://www.cnblogs.com/soul-wonder/p/9004092.html
Copyright © 2011-2022 走看看