• Springboot项目打成jar包运行 和 打成war包 外部tomcat运行


    Jar打包方式运行

    类型为jar时
    <packaging>jar</packaging>

    1.使用命令mvn clean  package 打包

    2.使用java –jar 包名运行

    // -server -Xms256m -Xmx256m 设置jvm参数 初始化堆内存值和最大值

    例:java -server -Xms256m -Xmx256m  -jar springboot_project.jar

    War打包方式 外部Tomcat运行

    类型为war时
    <packaging>war</packaging>

    1.pom.xml修改

     <!-- springboot-web组件 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <!-- 移除内置的tomcat -->
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    <!-- 或将内置的tomcat Scope改为provided -->
            <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-tomcat</artifactId>
              <scope>provided</scope>
            </dependency>

    说明:scope作用范围

    1、compile设置编译范围内有效,在编译和打包时都会将依赖项加载进去。

    2、test设置测试范围内有效,只在测试时使用,编译和打包时都不会加载该项。

    3、provided设置编译和测试的范围内有效,打包时不会加载该项。

    4、runtime设置在运行时加载该依赖项,但是编译时不依赖。

    2.修改启动类 继承SpringBootServletInitializer,并实现configure方法

    @SpringBootApplication
    public class ApplicationRun extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(this.getClass());
        }
    
    
        public static void main(String[] args) {
            SpringApplication.run(ApplicationRun.class,args);
        }
    }

    说明:外部tomcat启动的时候配置文件中配置的端口号和context-path将失效,使用的是外部tomcat的端口号和tomcat webapps下war包 名称

    #修改端口号和contextPath
    server.port = 8888
    server.servlet.context-path=/test

    打包跳过本地测试:package -Dmaven.test.skip=true

    -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。

    -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。

  • 相关阅读:
    qt的.pro配置总结
    【GOJ 1489】Monster Hunter
    CPU 杂谈
    【CF 1061C|GOJ 3505】Multiplicity
    【CF 1039D|GOJ 3502】You Are Given a Tree
    我跳过的坑
    【CF 1101D|GOJ 3501】GCD Counting
    【HDU 5269|GOJ 739】xor的最低位
    beta阶段组间的140字互评
    【第七周】【新蜂站会】3
  • 原文地址:https://www.cnblogs.com/boris-et/p/10030421.html
Copyright © 2020-2023  润新知