zoukankan      html  css  js  c++  java
  • 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,不执行测试用例,也不编译测试用例类。

  • 相关阅读:
    Linux查看当前系统的发行版信息
    用 CentOS 7 打造合适的科研环境
    消息队列的使用场景
    RabbitMQ几种Exchange 模式
    JMS规范概览
    消息队列的学习
    springMVC参数传递实例
    java8时间处理实例
    windows电脑常用必备软件
    http后台json解析实例
  • 原文地址:https://www.cnblogs.com/boris-et/p/10030421.html
Copyright © 2011-2022 走看看