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实现不同环境切换的方法步骤内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Java多线程编程中Boolean常量的同步问题

    浅谈Java多线程编程中Boolean常量的同步问题

    这篇文章主要介绍了浅谈Java多线程编程中Boolean常量的同步问题,主要针对线程之间同步了不同的布尔对象的问题,需要的朋友可以参考下
    2015-10-10
  • Java实现简易购物系统

    Java实现简易购物系统

    这篇文章主要为大家详细介绍了Java实现简易购物系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • java实现24点纸牌游戏

    java实现24点纸牌游戏

    这篇文章主要为大家详细介绍了java实现24点纸牌游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 提升java开发效率工具lombok使用争议

    提升java开发效率工具lombok使用争议

    这篇文章主要介绍了提升java开发效率工具lombok使用争议到底该不该使用的分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • eclipse 中的javac命令与java命令

    eclipse 中的javac命令与java命令

    这篇文章主要介绍了eclipse javac命令与java命令的相关资料,需要的朋友可以参考下
    2016-12-12
  • Java多线程并发基础实战举例

    Java多线程并发基础实战举例

    进程与线程的区别,解释并行与并发的概念,分析多线程导致的线程安全问题(可见性、原子性、有序性),并探讨Java通过volatile、synchronized及Happens-Before规则解决这些问题的机制,最后分类线程安全程度及实现方案,感兴趣的朋友一起看看吧
    2025-09-09
  • 一文掌握Spring Boot 日志文件

    一文掌握Spring Boot 日志文件

    日志是程序的重要组成部分,日志对于我们来说,最主要的用途就是排除和定位问题,这篇文章主要介绍了Spring Boot 日志文件,需要的朋友可以参考下
    2023-03-03
  • Struts2中接收表单数据的三种驱动方式

    Struts2中接收表单数据的三种驱动方式

    这篇文章简单给大家介绍了Struts2中接收表单数据的三种驱动方式,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-07-07
  • 深入理解Java new String()方法

    深入理解Java new String()方法

    今天给大家带来的是关于Java的相关知识,文章围绕着Java new String()展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 一篇文章带你入门Java继承

    一篇文章带你入门Java继承

    这篇文章主要介绍了Java继承概念详细解读,涉及继承的概念,合成的语法等相关内容,具有一定借鉴价值,需要的朋友可以参考下
    2021-08-08

最新评论