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

无网络环境下构建Gradle项目及生成依赖清单方法咨询

无需联网生成Gradle完整依赖清单的方案

1. 基于本地Gradle缓存生成清单

如果你的环境之前成功构建过该项目(哪怕是在能联网的状态下),Gradle会把所有依赖缓存到本地目录(默认路径:~/.gradle/caches/modules-2/files-2.1)。直接用Gradle内置任务导出:

  • 在项目根目录执行:./gradlew dependencies --configuration compileClasspath(Java项目用这个,Android项目可替换为debugCompileClasspath/releaseCompileClasspath等对应配置)
  • 命令会输出所有直接依赖和传递依赖的完整信息,包括组ID、Artifact ID和版本号。
  • 要导出到文件的话,追加重定向:./gradlew dependencies --configuration compileClasspath > dependencies.txt

2. 解析构建脚本+依赖锁定文件

如果本地没有缓存,直接分析项目的构建文件:

  • 先提取直接依赖:在build.gradle(或build.gradle.kts)的dependencies块里,把implementation、api等声明的依赖全部记录,比如implementation 'com.google.guava:guava:31.1-jre'。
  • 处理传递依赖:如果项目启用过依赖锁定(dependencyLocking配置),会生成gradle.lockfile,文件里包含所有依赖(包括传递依赖)的精确版本,直接读取即可。
  • 要是没有锁定文件,先在临时联网环境(比如个人电脑)构建一次项目,生成锁定文件后拷贝到离线环境,再基于它整理清单。

3. 用Gradle项目报告插件生成结构化报告

在项目的build.gradle里添加插件配置:

plugins {
    id 'project-report'
}

执行./gradlew htmlDependencyReport,会在build/reports/project/dependencies目录生成HTML格式的依赖报告,清晰展示所有依赖的层级、版本和来源。前提是本地已有缓存,或者先在联网环境生成报告再拷贝到离线环境。

关键注意点

  • 要覆盖项目所有构建配置的依赖,比如Java项目的testCompileClasspath、Android项目的不同构建变体,避免遗漏测试或特定环境的依赖。
  • 把项目用到的仓库地址也同步给安全部门,确保代理例外规则覆盖这些仓库域名,不然即使放行依赖,也无法从仓库拉取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:47:41