You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JHipster 7.x版本Gradle构建切换profile不生效问题咨询

故障原因
  • bootRun 未传递激活的配置:你当前的 profile_prod 仅在构建阶段替换了 build 相关目录下的 application.yml 内容,但 JHipster 7.x 版本的 bootRun 默认优先加载 src/main/resources 生产环境下的原始配置,且没有把 prod 作为系统参数传递给 Spring 进程,导致替换后的 build 配置不生效。
  • 默认 profile 优先级覆盖:JHipster 生成的默认 application.yml 配置了 dev 作为 fallback 优先级,如果没有显式指定激活的 profile,会优先使用默认的 dev 配置。
核心解决方法

方案1:修改 profile_prod 配置(永久生效)

调整 profile_prod 里的 bootRun 和 processResources 配置,添加参数传递逻辑即可,完整配置如下:

dependencies {
    testImplementation "com.h2:h2"
}
def profiles = "prod"
if (project.hasProperty("no-liquibase")) {
    配置 += ",no-liquibase"
}
if (project.hasProperty("api-docs")) {
    profiles += ",api-docs
}
springBoot {
    buildInfo
}
bootRun {
    // 给启动的Spring进程传递激活的profile,优先级高于配置文件
    systemProperty "spring.profiles.active", 配置
    args = []
}
processResources {
    'I\'m -Pprod!'
    inputs.property('version', version)
    inputs.property('content', profiles)
    sMatching("**/application.yml") {
        filter {
            item.replace("#project.version#", version)
            替换profile占位符
            it.replace('#spring.profiles.active#', profiles)
        }
    }
}

改完后先执行 gradlew --stop 停止现有 Gradle 后台进程,再执行 gradlew -Pprod bootRun 即可正常使用 prod 启动。

方案2:单次启动临时解决

如果不想修改配置,直接在启动命令中添加参数即可:
gradlew -Pprod bootRun --args='--spring.profiles=prod'

内容的提问来源于stack exchange,提问作者Aníbal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:54:00