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

Gradle构建Spring Boot:将根目录.ebextensions文件夹打入Jar包的方法

解决Spring Boot Gradle打包时包含.ebextensions的问题

我之前也碰到过一模一样的问题——AWS Elastic Beanstalk需要.ebextensions文件夹在Jar的classpath下才能加载配置,但Spring Boot的Gradle插件默认只会把src/main/resources里的资源打包进去,根目录的.ebextensions自然就被漏掉了。这里给你两个实用的解决办法:

方法一:直接移动文件夹(最简单)

把项目根目录的.ebextensions文件夹移动到src/main/resources目录下。Spring Boot的Gradle插件会自动把这个目录下的所有资源打包到Jar的BOOT-INF/classes路径里,AWS EB就能正常识别到配置了。这个方法不需要修改任何构建脚本,省心又不容易出错。

方法二:修改build.gradle配置(不移动文件夹)

如果你不想调整文件夹结构,可以在build.gradle里添加配置,让打包任务把根目录的.ebextensions包含进去。因为你用的是Spring Boot 1.5.x版本的插件,对应的打包任务是bootRepackage,添加以下配置即可:

bootRepackage {
    from('.') {
        include '.ebextensions/**'
        // 把文件夹放到Jar的classpath目录下,和resources里的内容同路径
        into 'BOOT-INF/classes'
    }
}

或者也可以通过配置sourceSets来扩展资源目录,这样所有资源相关任务都会包含这个文件夹:

sourceSets {
    main {
        resources {
            // 添加根目录为资源源目录,但仅包含.ebextensions
            srcDir '.'
            include '.ebextensions/**'
            // 保留默认的resources目录,避免原有资源被遗漏
            srcDir 'src/main/resources'
        }
    }
}

配置完成后,重新执行bootPackage(或对应版本的bootRepackage)命令,打包完成后可以解压Jar包检查一下,确认BOOT-INF/classes/.ebextensions存在就没问题了。

内容的提问来源于stack exchange,提问作者Daniel Haughton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:44:22