Spring Boot 的 profile(多环境配置)机制

以下是本次 Spring Boot 多环境配置(profile)机制涉及的所有修改点,按构建生效链路顺序整理。

修改点总览

步骤文件修改内容作用
1pom.xml(父)新增 <profile.active>druid</profile.active> 默认值提供默认 profile,本地开发不传参也能正常运行
2application.ymlactive: druid → active: ${profile.active}用占位符接收 Maven 传入的 profile 值
3ruoyi-admin/pom.xml新增 <resources> 资源过滤配置让 Maven 在打包时替换 yml 中的 ${profile.active} 占位符
4ruoyi-admin/pom.xml<finalName> 改为 self_assessment_admin让产物 jar 名与 bat 脚本判断的文件名一致
5创建jar_linux_test.bat参数改为 -Dproject.build.directory正确指定输出目录为 target-linux-test
6创建jar_linux_prod.bat参数改为 -Dproject.build.directory正确指定输出目录为 target-linux-prod

逐步详细说明

步骤 1:父 pom.xml 增加 profile 默认值

在 <properties> 中添加:

xml

<properties>
    <!-- 默认激活的Spring profile,构建时可通过 -Dprofile.active=druid,linux-test 覆盖 -->
    <profile.active>druid</profile.active>
    <ruoyi.version>3.9.2</ruoyi.version>
    ...

作用:定义 Maven 属性 profile.active 的默认值。命令行 -Dprofile.active=xxx 会覆盖它;不传时用 druid,保证本地开发环境正常。

步骤 2:application.yml 使用占位符

将:

yaml

spring:
  profiles:
    active: druid

改为:

yaml

spring:
  profiles:
    active: ${profile.active}

作用:让 Spring Boot 的 profiles.active 值不再是写死的 druid,而是引用 Maven 属性 profile.active。打包时由 Maven 过滤替换成实际值。

步骤 3:ruoyi-admin/pom.xml 开启资源过滤

在 <build> 中新增 <resources>

xml

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application*.yml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <excludes>
                <exclude>application*.yml</exclude>
            </excludes>
        </resource>
    </resources>
    <plugins>
        ...

作用:这是让步骤 2 占位符真正生效的关键。只对 application*.yml 开启 filtering=true,Maven 打包时才会把 ${profile.active} 替换成步骤 1 定义的属性值。其余文件(logback.xml 等)保持 filtering=false,避免运行时占位符被误替换。

步骤 4:ruoyi-admin/pom.xml 修正 finalName

将:

xml

<finalName>zipinggu_admin</finalName>

改为:

xml

<finalName>self_assessment_admin</finalName>

作用finalName 决定最终 jar 文件名。bat 脚本里判断的是 self_assessment_admin.jar,原值 zipinggu_admin 会导致脚本找不到产物而报错。

步骤 5:创建jar_linux_test.bat 修正输出目录参数

将:

bat

-Dmaven.build.output.directory=target-linux-test

改为:

bat

-Dproject.build.directory=target-linux-test

作用maven.build.output.directory 不是标准 Maven 参数,无法生效。改用标准的 project.build.directory(即 Maven 的 ${project.build.directory}),jar 才会真正输出到 ruoyi-admin\target-linux-test

步骤 6:创建jar_linux_prod.bat 修正输出目录参数

将:

bat

-Dmaven.build.output.directory=target-linux-prod

改为:

bat

-Dproject.build.directory=target-linux-prod

作用:同步骤 5,让 prod 构建正确输出到 ruoyi-admin\target-linux-prod

完整生效链路(回顾)

code

① 父pom定义默认值 profile.active=druid
        ↓
② bat 传参 -Dprofile.active=druid,linux-test(覆盖默认值)
        ↓
③ maven-resources-plugin 过滤 application*.yml
        ↓
④ application.yml 的 ${profile.active} → druid,linux-test
        ↓
⑤ Spring Boot 启动加载 application-druid.yml + application-linux-test.yml
        ↓
⑥ -Dproject.build.directory 指定输出目录
        ↓
⑦ finalName=self_assessment_admin 生成 jar → copy 重命名

这 6 处修改缺一不可:1、2、3 共同打通「profile 参数传递」链路;4 保证 jar 命名正确;5、6 保证产物落到独立目录。

补充:配置logs日志路径:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值