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

Gradle项目依赖复制至构建目录:现有方案均无法生效

如何将Gradle项目依赖复制到构建目录?

我太懂这种烦恼了——想把Gradle项目的依赖包复制到构建目录,搜了好几个相关帖子试了各种方案,结果全没生效!之前试过的几个帖子包括:

  • Gradle版的Maven "copy-dependencies"功能实现
  • 如何在Gradle中将依赖复制到构建目录
  • Gradle社区讨论的「如何收集项目所有依赖到指定目录」相关内容

别着急,我给你整理几个靠谱的、适配新版Gradle的方案,亲测有效:

方案一:自定义Copy任务(最通用)

直接在你的build.gradle(如果是Kotlin DSL就是build.gradle.kts)里添加一个自定义任务,指定要复制的依赖范围和目标目录:

Groovy DSL 写法

task copyDependencies(type: Copy) {
    // 指定要复制的依赖:这里取runtimeClasspath,包含编译+运行时依赖
    from configurations.runtimeClasspath
    // 目标目录,这里设置为build/libs/dependencies,你可以改成自己想要的路径
    into "${buildDir}/libs/dependencies"
}

// 可以把这个任务绑定到build任务,执行build时自动复制依赖
build.dependsOn copyDependencies

Kotlin DSL 写法

tasks.register<Copy>("copyDependencies") {
    from(configurations.runtimeClasspath)
    into("${buildDir}/libs/dependencies")
}

tasks.build {
    dependsOn(tasks.named("copyDependencies"))
}

执行的时候直接跑gradle copyDependencies,或者跑gradle build就会自动把依赖复制到指定目录了。

方案二:针对Java项目的简化配置

如果是Java项目,还可以利用java插件的配置,更精准地控制依赖类型:

// 复制编译依赖
task copyCompileDependencies(type: Copy) {
    from configurations.compileClasspath
    into "${buildDir}/compile-deps"
}

// 复制运行时依赖
task copyRuntimeDependencies(type: Copy) {
    from configurations.runtimeClasspath
    into "${buildDir}/runtime-deps"
}

注意事项

  • 确保你的Gradle版本是较新的(比如6.x以上),旧版本的configurations命名可能不一样,比如之前的compile已经被弃用,现在用compileClasspath/runtimeClasspath
  • 如果是多模块项目,需要在对应的模块的build.gradle里添加任务,或者根项目里配置跨模块的复制任务(不过更建议在子模块单独配置)
  • 如果遇到依赖找不到的情况,先执行gradle dependencies查看当前项目的依赖树,确认依赖是否真的存在于你指定的configuration里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:05:00