关于SpringBoot打包测试、生产环境方式

 更新时间:2023年09月01日 10:54:09   作者:lee84233  
这篇文章主要介绍了关于SpringBoot打包测试、生产环境方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1. SpringBoot创建不同环境的配置文件

1.1 新建各环境的配置文件

resources 目录下新建 application-dev.yml application-test.yml application-prod.yml 文件

分别对应 开发、测试、生产环境

新建环境配置文件

1.2 修改 application.yml

application.yml 修改配置参数

spring:
  profiles:
    active: @profiles.active@

2. 修改 pom.xml

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--fork: 如果没有该项配置,整个 devtools 不会起作用-->
                    <fork>true</fork>
                    <!--启动类-->
                    <mainClass>com.xx.DemoApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <!--创建一个自动可执行的jar或war文件 -->
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- 资源根目录排除各环境的配置,防止在生成目录中多余其它目录 -->
                <filtering>true</filtering>
                <excludes>
                    <exclude>application*.yml</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>application.yml</include>
                    <include>application-${profiles.active}.yml</include>
                </includes>
            </resource>
        </resources>
    </build>
	<!-- 不同环境的配置 -->
    <profiles>
        <!--开发环境-->
        <profile>
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
            <!--默认激活-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!--测试环境-->
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
        <!--生产环境-->
        <profile>
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
    </profiles>

3. 打成指定环境的 jar包

3.1 使用 idea 开发工具进行打包

使用 idea 开发工具操作即可,方便快捷:

  • 打开右侧的 Maven 工具栏。
  • 双击 clean ,先清理一下。
  • 勾选需要打包的环境
  • 双击 package ,等到 SUCCESS后,查看 target 目录下,会有打包的项目jar包。

操作步骤如图:

idea操作步骤图

3.2 命令行打包

执行命令:

mvn clean package -P {环境名} -D maven.test.skip=true

示例(打包test环境):

mvn clean package -P test -D maven.test.skip=true

3.3 成功后的jar包

查看 target 目录下的 jar

打包后的jar包

4. 本地运行jar包

jar包所在的路径下,执行:

java -jar -D spring.profiles.active={环境名} {jar包名}

示例

(打包的test环境,打包后jar包名为 springboot-demo1-1.0.0-SNAPSHOT.jar):

java -jar -D spring.profiles.active=test springboot-demo1-1.0.0-SNAPSHOT.jar

示例图

执行命令

springboot启动成功

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Java实现收发电子邮件功能

    基于Java实现收发电子邮件功能

    Email就是电子邮件,我们平常使用的QQ邮箱,网易邮箱,Foxmail都是用来收发邮件的,利用Java程序也可以完成收发电子邮件的功能,本文就来为大家详细讲讲实现步骤
    2022-07-07
  • 详解Java高阶语法Volatile

    详解Java高阶语法Volatile

    这篇文章主要介绍了Java高阶语法Volatile,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • idea无法识别注解,或pom文件异常的问题及解决

    idea无法识别注解,或pom文件异常的问题及解决

    文章介绍了三种解决IDEA无法识别注解或POM文件异常的方法:1.检查省电模式设置;2.为未识别的POM文件添加Maven工程;3.移除并重新添加有问题的模块
    2026-01-01
  • Java多重数组使用及说明

    Java多重数组使用及说明

    本文介绍了Java中多维数组的定义、声明、初始化、访问、遍历以及内存结构,文章还讨论了Java多维数组与C/C++的区别,以及如何处理锯齿数组和深拷贝,此外,还提到了数组与链表的区别,包括它们的内存布局、操作效率和适用场景
    2026-01-01
  • Java中Cglib代理类重写逻辑详解

    Java中Cglib代理类重写逻辑详解

    这篇文章主要介绍了Java中Cglib代理类重写逻辑详解,代理类中只会维护NoOp这个回调属性,并不会生成目标类MyService中的noOp所对应的方法,需要的朋友可以参考下
    2023-11-11
  • mybatis group by substr函数传参报错的解决

    mybatis group by substr函数传参报错的解决

    这篇文章主要介绍了mybatis group by substr函数传参报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • JavaWeb实现用户登录与注册功能(服务器)

    JavaWeb实现用户登录与注册功能(服务器)

    这篇文章主要介绍了JavaWeb实现用户登录与注册功能,服务器部分的关键代码实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Java实现心跳机制的方法

    Java实现心跳机制的方法

    这篇文章主要介绍了Java实现心跳机制的方法,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 通过实例解析Java class文件编译加载过程

    通过实例解析Java class文件编译加载过程

    这篇文章主要介绍了通过实例解析Java class文件编译加载过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 如何有效管理JVM中的垃圾?

    如何有效管理JVM中的垃圾?

    今天给大家带来的是关于Java虚拟机的相关知识,文章围绕着如何有效管理JVM中的垃圾展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06

最新评论