IDEA POM文件配置profile实现不同环境切换

目录

一、背景

二、实现

2.1创建不同的配置文件

2.2配置POM文件

三、效果

3.1本地使用

 2.2线上或者测试环境使用


一、背景

在企业级开发中,为了不影响生产环境的项目运行,一般情况下都会划分生产环境、测试环境、开发环境。不同环境可以配置不同的数据库、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一下,启动项目大概率是会报错的。

 3.2线上或者测试环境使用

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

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

mvn package -P prod   

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

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

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

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

3.3、切换环境编译报错

也有可能clean之后编译还是报错找不到某些类,这个时候大概率还是前面打包的target的问题。可以试试设置一下idea配置,file/settings/Build,Execution,Deployment/Build Tools/Maven/Runner

### 如何在 IntelliJ IDEA配置并使用 Git Bash #### 配置终端为 Git Bash 为了使 IntelliJ IDEA 的内置终端支持 Git Bash,可以按照以下方法操作: 1. **修改 Shell 路径** 打开 IntelliJ IDEA 后进入 `File -> Settings`(对于 macOS 用户则是 `IntelliJ IDEA -> Preferences`),导航到 `Tools -> Terminal`。在这里,将 `Shell path` 设置为 Git Bash 的可执行文件路径,通常是类似于 `C:\Program Files\Git\bin\bash.exe` 的位置[^2]。 2. **解决中文乱码问题** 如果你在使用 Git Bash 终端时遇到中文字符显示为乱码的情况,则需要调整环境变量设置。具体做法是在 Git 安装目录下的 `etc/bash.bashrc` 文件中追加如下两行代码: ```bash export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8" ``` 添加完成后保存该文件,并重启 IntelliJ IDEA 即可生效。 #### 自定义配置路径 除了上述基本配置外,还可以通过自定义配置来进一步优化开发体验。例如,在项目根目录创建 `.ideavimrc` 或其他特定于项目的配置文件实现个性化需求。以下是几个常用的配置项及其默认存储位置说明: - `idea.config.path`: 存储全局插件和其他配置数据,默认位于 `%USERPROFILE%\.IntelliJIdea<version>\config`。 - `idea.system.path`: 用于缓存索引及其他临时文件,默认指向 `%USERPROFILE%\.IntelliJIdea<version>\system`。 - `idea.plugins.path`: 插件安装的具体地址,默认与 system 目录相同或单独指定。 - `idea.log.path`: 日志记录所在的位置,便于排查错误信息。 这些路径可以通过命令行参数或者环境变量的形式重写,比如前述提到的例子展示了如何手动设定它们至 E盘分区下某个固定文件夹内[^1]。 ```python import os # 示例:动态获取当前用户的 IdeaConfigPath 和 SystemPath def get_idea_paths(): config_path = os.getenv('idea.config.path', None) system_path = os.getenv('idea.system.path', None) if not (config_path and system_path): raise EnvironmentError("未检测到有效的 IDEA 环境变量") return { 'config': config_path, 'system': system_path } print(get_idea_paths()) ``` 以上脚本可以帮助开发者快速确认自己的 IDE 是否已经应用了定制化路径方案。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值