zoukankan      html  css  js  c++  java
  • springboot工程打成war包

    1、将pom.xml中默认的jar修改为war。

    <packaging>war</packaging>

    2、排除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>

    3、添加Tomcat依赖,用于编译和测试。

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-tomcat</artifactId>
       <!-- 该包只在编译和测试的时候使用 -->
        <scope>provided</scope>
    </dependency>

    4、继承org.springframework.boot.web.servlet.support.SpringBootServletInitializer,实现configure方法。

    @Configuration
    @EnableAutoConfiguration
    @ComponentScan
    public class Application extends SpringBootServletInitializer{
          public static void main(String[] args) {
              SpringApplication.run(Application.class, args);
          }
          
          /**
           * 工程打成war需要继承SpringBootServletInitializer,重写configure方法
           * @date 2018年12月7日
           * @author zxp
           */
          @Override
          protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
              return builder.sources(Application.class);
          }
          
    }

    5、注意

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

    server.port=

    server.servlet.context-path=

    将失效,请使用Tomcat的端口。

    为了防止应用上下文所导致的项目访问资源加载不到的问题,建议pom.xml文件中<build></build>标签下添加<finalName></finalName>标签:

    <build>
          <!-- 应与application.properties(或application.yml)中context-path保持一致 -->
        <finalName></finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <!-- 配置java版本-->
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <fork>true</fork>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>

    在项目目录下(与pom.xml文件同级),使用mvn命令打包,运行:

    jar 方式打包,使用内置Tomcat:mvn clean install -Dmaven.test.skip=true

    运行:java -jar 包名.jar

    war方式打包,使用外置Tomcat:mvn clean package -Dmaven.test.skip=true

    clean是清除之前的包,-Dmaven.test.skip=true是忽略测试代码

  • 相关阅读:
    基于jQuery的六大表单向导插件
    oracle行转列(动态行转不定列)
    PLSql自动替换---辅助写代码
    ExcelReport第一篇:使用ExcelReport导出Excel
    改HTML5里的input标签的required属性的提示为英文的
    spring boot:用redis+lua实现表单接口的幂等性(spring boot 2.2.0)
    linux(centos8):centos8.1安装(详细过程/图解)(vmware fusion/CentOS-8.1.1911-x86_64)
    linux(centos8):配置docker的cgroup driver为systemd
    linux(centos8):禁用selinux(临时关闭/永久关闭)
    linux(centos8):firewalld对于请求会选择哪个zone处理?
  • 原文地址:https://www.cnblogs.com/beanbag/p/10116304.html
Copyright © 2011-2022 走看看