zoukankan      html  css  js  c++  java
  • Springboot -war部署

    一、修改pom.xml文件

        1.1  修改打包形式

    <!--改为war方式 -->
    <packaging>war</packaging>

        1.2 移除嵌入式tomcat插件

    <!-- 在项目打包时,剔除springboot内置tomcat -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

    1.3 添加servlet-api的依赖

               作用:编写servlet时用我们自己引用的包,而运行时用tomcat自己的包,这样就不用冲突了,又能正常开发代码

    下面两种方式都可以,任选其一
    
    第一种:
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    
    
    第二种:
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-servlet-api</artifactId>
        <version>8.0.36</version>
        <scope>provided</scope>
    </dependency>

    1.4 maven打包配置

    <build>
            <!-- 自定义打包名称
                 这里的名称必须与application.properties中server.context-path的值一致
               否则即使Tomcat启动项目成功,在访问时也会导致404错误 -->
            <finalName>demo</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>${jdk.version}</source><!-- 指定jdk版本 -->
                        <target>${jdk.version}</target>
                        <encoding>${project.build.sourceEncoding}</encoding><!-- 指定编码版本 -->
                    </configuration>
                </plugin>
                <!--该插件的主要功能是进行项目的打包发布处理 -->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>1.5.4.RELEASE</version>
                    <configuration> <!--设置程序执行的主类,指定程序入口 -->
                        <mainClass>com.web.boot.ApplicationStart</mainClass>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal><!-- repackage将jar / war 重新打包为可执行文件 -->
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    1.5 修改启动类,并重写初始化方法

    1.5.1 我们平常用main方法启动的方式,都有一个App的启动类,代码如下:
    @SpringBootApplication
    public class ApplicationStart{
        public static void main(String[] args) {
            SpringApplication.run(ApplicationStart.class, args);
        }
    }
    1.5.2 使用外置的tomcat启动,我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:
    /** 
     * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法 
     */ 
    @SpringBootApplication
    public class ApplicationStart  extends SpringBootServletInitializer{
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            // 注意这里要指向原先用main方法执行的Application启动类 
            return builder.sources(ApplicationStart.class);
        }
        public static void main(String[] args) {
            SpringApplication.run(ApplicationStart.class, args);
        }
    }

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

    spring boot就是为了简化开发的,也就是用注解的方式取代了传统的xml配置。

    SpringBootServletInitializer就是原有的web.xml文件的替代。

    二.打包部署

    2.1在项目根目录下(即包含pom.xml的目录),在命令行里输入: 

    clean package -D maven.test.skip=true

     等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。 

     2.2  然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat

     即可自动解压部署。

     三.运行

    3.1 ${Tomcat_home}/bin/目录下执行startup.bat(windows)

    3.2 ${Tomcat_home}/bin/目录下执行startup.sh(linux)

     四.访问测试

    注意事项:

    使用外部Tomcat部署访问的时候,application.properties(或者application.yml)中配置的端口

    将失效,请使用${Tomcat_home}/conf/server.xml中的端口进行访问。

     

    为了防止应用上下文所导致的项目访问资源加载不到的问题,

    建议pom.xml文件中<build></build>标签下添加<finalName></finalName>标签,且需和application.properties(或者application.yml)中server.context-path的值一致

  • 相关阅读:
    HDU 1018.Big Number-Stirling(斯特林)公式 取N阶乘近似值
    牛客网 Wannafly挑战赛9 C.列一列-sscanf()函数
    牛客网 Wannafly挑战赛9 A.找一找-数据处理
    Codeforces 919 C. Seat Arrangements
    Codeforces Round #374 (Div. 2) D. Maxim and Array 线段树+贪心
    Codeforces Round #283 (Div. 2) A ,B ,C 暴力,暴力,暴力
    Codeforces Round #283 (Div. 2) E. Distributing Parts 贪心+set二分
    Codeforces Round #280 (Div. 2) E. Vanya and Field 数学
    Codeforces Round #280 (Div. 2) D. Vanya and Computer Game 数学
    Codeforces Round #280 (Div. 2) A , B , C
  • 原文地址:https://www.cnblogs.com/KdeS/p/12096700.html
Copyright © 2011-2022 走看看