IDEA POM文件配置profile实现不同环境切换的方法步骤

 更新时间:2024年03月04日 11:01:20   作者:赫萝的红苹果  
这篇文章主要介绍了IDEA POM文件配置profile实现不同环境切换的方法步骤

一、背景

在企业级开发中,为了不影响生产环境的项目运行,一般情况下都会划分生产环境、测试环境、开发环境。不同环境可以配置不同的数据库、redis连接,这样在开发新功能的时候就不会影响线上环境。

二、实现

2.1创建不同的配置文件

application.yml

spring:
  profiles:
    active: '@profiles.active@'

application-dev.yml

# 应用服务 WEB 访问端口
server:
  port: 8081

#数据库连接
spring:
  datasource:
    #配置自己的账户密码
    username: xxx
    password: xxx
    url: jdbc:mysql://127.0.0.1:3306/my_app
    driver-class-name: com.mysql.cj.jdbc.Driver

 application-test.yml

# 应用服务 WEB 访问端口
server:
  port: 8081

#数据库连接
spring:
  datasource:
    #配置自己的账户密码
    username: xxx
    password: xxx
    url: jdbc:mysql://127.0.0.1:3306/my_app
    driver-class-name: com.mysql.cj.jdbc.Driver

 application-prod.yml

# 应用服务 WEB 访问端口
server:
  port: 8081

#数据库连接
spring:
  datasource:
    #配置自己的账户密码
    username: xxx
    password: xxx
    url: jdbc:mysql://127.0.0.1:3306/my_app
    driver-class-name: com.mysql.cj.jdbc.Driver

dev,test,prod可以分别配置不同的地址,以实现连接不同的数据库。

2.2配置POM文件

<project>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!--①移除全部配置文件-->
                <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>
            <!--不同环境Profile的唯一id-->
            <id>dev</id>
            <properties>
                <!--profiles.active是自定义的字段(名字随便起),自定义字段可以有多个-->
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
    </profiles>


</project>

配置文件里面有一小块移除配置文件的代码

如果将该代码注掉,那么在打包项目的时候就会把全部配置文件都打包进去,这样拿到jar包之后就可以在启动项目的时候通过传入不同的参数来使用不同的配置文件启动项目,有点不安全。

如果不注掉的话,就会把全部配置文件都移除,在下方把指定的要打包的配置文件引入,这样获得的jar包就只能启动打包时候指定的配置文件,尝试使用其他配置文件会获取不到而报错。(建议)

三、效果

3.1本地使用

先在项目右上角的Profiles选中想要启动的环境,然后启动项目,端口和设置的配置文件匹配。

换个配置文件试试,端口和配置的文件也匹配,也是没问题。

PS:一般情况下,切换环境最好点一下下方的clean,先清一下缓存配置。可能是现在配置少,现在本地不clean也没问题,但在企业开发中如果不clean一下,启动项目大概率是会报错的。

 2.2线上或者测试环境使用

线上或者测试环境一般都用jekins来自动化打包运行项目,也就是通过脚本去自动运行项目。

我们可以在项目目录,通过命令行去打包项目mvn package -P 环境

mvn package -P prod   

 打包完成之后会在项目目录下面生产一个target文件夹,里面有一个jar文件,这个文件就是打包的项目文件。(如果项目设置的打包是war的话,也可能是war文件。)

我们去到jar文件所在目录,通过命令行运行jar文件

启动了8082端口,也正是prod文件配置的端口,验证完毕。

因为我前面是开启了配置文件过滤的,验证一下用其他配置文件启动该jar包。(找不到配置文件而报错,安全性得到了保障)

到此这篇关于IDEA POM文件配置profile实现不同环境切换的方法步骤的文章就介绍到这了,更多相关IDEA POM文件配置profile实现不同环境切换的方法步骤内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mockito 结合 Springboot 进行应用测试的方法详解

    Mockito 结合 Springboot 进行应用测试的方法详解

    这篇文章主要介绍了Mockito 结合 Springboot 进行应用测试的方法详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • java优先队列PriorityQueue中Comparator的用法详解

    java优先队列PriorityQueue中Comparator的用法详解

    这篇文章主要介绍了java优先队列PriorityQueue中Comparator的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Java Optional用法面试题精讲

    Java Optional用法面试题精讲

    这篇文章主要为大家介绍了Java Optional用法面试题精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 学习java编程后可以走哪些职业道路

    学习java编程后可以走哪些职业道路

    在本篇文章里给大家介绍了关于学习java后的职业道路,以及需要学习的相关知识内容,有兴趣的朋友们可以跟着学习下。
    2022-11-11
  • SpringMVC和Spring的配置文件扫描包详解

    SpringMVC和Spring的配置文件扫描包详解

    这篇文章主要介绍了SpringMVC和Spring的配置文件扫描包,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • Java RandomAccessFile基本文件操作示例

    Java RandomAccessFile基本文件操作示例

    这篇文章主要介绍了Java RandomAccessFile基本文件操作,结合实例形式分析了Java基于RandomAccessFile实现文件读写及文件随机访问相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • ThreadLocal导致JVM内存泄漏原因探究

    ThreadLocal导致JVM内存泄漏原因探究

    ThreadLocal是JDK提供的线程本地变量机制,但若使用不当可能导致内存泄漏。正确的使用方式是在使用完后及时remove,或者使用弱引用等手段避免强引用导致的内存泄漏。在多线程编程中,合理使用ThreadLocal可以提高并发性能,但也需要注意其潜在的内存泄漏问题
    2023-04-04
  • Spring中的事务隔离级别和传播行为

    Spring中的事务隔离级别和传播行为

    这篇文章主要介绍了Spring中的事务隔离级别和传播行为,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Linux中使用shell脚本管理Java应用程序

    Linux中使用shell脚本管理Java应用程序

    在日常开发和运维工作中,管理基于Java的应用程序是一项基础且频繁的任务,本文将通过一个示例脚本,展示如何利用Shell脚本简化这一流程,实现Java应用的一键式启动、停止与重启操作,本脚本不仅提升了工作效率,还确保了操作的标准化与可靠性
    2024-06-06
  • AsyncConfigurerSupport自定义异步线程池处理异常

    AsyncConfigurerSupport自定义异步线程池处理异常

    这篇文章主要为大家介绍了AsyncConfigurerSupport自定义异步线程池处理异常详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论