如何在Spring Boot Gradle bootBuildImage中排除测试配置文件
如何在Spring Boot构建镜像时排除测试配置文件
要在使用./gradlew bootBuildImage构建镜像时排除application-test.properties,只需修改Gradle构建配置,让构建过程不把测试配置文件打包到最终产物里即可,具体分两种配置方式:
一、全局固定排除测试配置
如果不管什么构建场景都要排除测试配置,直接修改项目的构建脚本:
Groovy 风格配置(build.gradle)
processResources { exclude 'application-test.properties' }
Kotlin 风格配置(build.gradle.kts)
tasks.processResources { exclude("application-test.properties") }
修改后重新执行./gradlew bootBuildImage,生成的镜像里就不会包含application-test.properties了。
二、按需排除(通过Gradle参数控制)
如果不想全局排除,只在构建生产镜像时才排除,可以添加条件判断,通过命令行参数触发:
Groovy 风格配置(build.gradle)
processResources { // 当传入excludeTestConfig参数时才排除测试配置 if (project.hasProperty('excludeTestConfig')) { exclude 'application-test.properties' } }
Kotlin 风格配置(build.gradle.kts)
tasks.processResources { if (project.hasProperty("excludeTestConfig")) { exclude("application-test.properties") } }
构建生产镜像时执行带参数的命令:
./gradlew bootBuildImage -PexcludeTestConfig
这样平时开发构建时不影响测试配置的使用,只有构建生产镜像时才会排除它。
验证方式
构建完成后,可尝试启动容器指定test环境:
docker run -e "SPRING_PROFILES_ACTIVE=test" -p 8080:8080 my_image_name
如果应用启动失败(提示找不到test配置),说明测试配置文件已成功排除。
内容的提问来源于stack exchange,提问作者ironbone
相关产品推荐
相关产品推荐

