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

如何在Gradle中将指定文件导出到jar包同级目录

Gradle实现文件输出到Jar同级目录的方案

你可以通过给jar任务追加后置复制逻辑实现需求,等效于C#中设置「Build Action」为「Content」的效果,修改后的完整配置如下:

// 替换为你自己的settings.json文件所在的源路径,示例为项目根目录下的settings.json
def targetContentFile = file("settings.json")

jar {
    manifest {
        attributes 'Main-Class': 'Program'
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    // 可选:如果你的settings.json在resources目录下,添加此行避免文件被打进Jar内部
    exclude 'settings.json'
    
    // Jar打包完成后自动复制文件到Jar同级目录
    doLast {
        copy {
            from targetContentFile
            // destinationDirectory是Jar任务内置属性,指向Jar默认输出目录build/libs
            into destinationDirectory
        }
    }
}

配置说明

  • 如果你有多个需要输出的外部文件,直接在from参数后追加文件路径即可,示例:from targetContentFile, file("config.xml"), file("static/")
  • 执行./gradlew jar或者./gradlew build命令时,会自动完成Jar打包和配置文件的复制操作
  • 如果你后续修改了Jar的输出目录,不需要调整复制逻辑,destinationDirectory会自动同步最新的输出路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:57:03