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

如何通过build.gradle.kts将配置文件打包进Spring Boot的JAR包

解决Spring Boot JAR包未包含src/main/resources/dummy目录文件的问题

构建独立可执行Spring Boot JAR时,src/main/resources/dummy下的.txt、.cache等文件没被打包进JAR,大概率是构建工具(Maven/Gradle)的资源配置没正确包含该目录,以下是两种主流构建工具的解决办法:

Maven项目处理步骤

  1. 打开项目根目录的pom.xml
  2. 在<build>节点里添加资源配置,明确包含dummy目录下所有文件:
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*</include>
                <include>dummy/**/*</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
    <!-- 原有的Spring Boot插件配置保持不变 -->
</build>
  • 注意:filtering设为false是为了防止构建工具修改这些非配置文件的内容,保证文件原样打包。

Gradle(Kotlin DSL)项目处理步骤

  1. 打开项目根目录的build.gradle.kts
  2. 修改sourceSets配置,确保resources包含dummy目录:
sourceSets {
    main {
        resources {
            srcDir("src/main/resources")
            includes += listOf("dummy/**/*", "**/*")
        }
    }
}
  • 如果之前有自定义的资源排除规则,记得检查并移除对dummy目录的排除项。

验证打包结果

  • 执行构建命令:
    • Maven:mvn clean package
    • Gradle:./gradlew clean bootJar
  • 解压生成的JAR包,查看BOOT-INF/classes/dummy目录是否存在,且包含对应的.cache和.txt文件
  • 代码里读取这些文件时,要用类路径方式读取,示例:
// 读取dummy/data/dataExample3.txt文件
val inputStream = this::class.java.classLoader.getResourceAsStream("dummy/data/dataExample3.txt")
// 后续处理输入流即可

这种方式能保证JAR不管在什么位置运行,都能正确读取到包内的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:25:39