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

能否导出Maven项目依赖列表并通过命令行批量下载依赖

Maven全量依赖导出+批量下载实现方法

完全可以实现,不需要额外安装第三方工具,用Maven原生插件就能完成全流程:

  • 导出全量依赖到文件
    参照mvn dependency:tree的依赖解析逻辑,直接用Maven依赖插件的输出参数就能把所有依赖(包括传递依赖)写入指定文件,不需要手动复制控制台输出:
    • 导出层级化依赖树结构:
      mvn dependency:tree -DoutputFile=./dependency-tree.txt -Dverbose=false
      加-Dverbose=true会输出所有被依赖仲裁忽略的冲突版本依赖,按需开启即可。
    • 导出纯列表格式依赖(更方便后续批量处理):
      mvn dependency:list -DoutputFile=./dependency-list.txt -DexcludeTransitive=false -DincludeScope=compile
      其中-DincludeScope可以按需替换为runtime/test等,指定要导出的依赖范围。
  • 基于依赖列表批量下载
    两种常用方式,按需选择即可:
    1. 直接在项目目录执行预拉取命令,不需要手动解析导出的文件,Maven会自动解析全量依赖(含构建插件依赖)全部下载到本地仓库:
      mvn dependency:go-offline
      如果要把依赖下载到指定目录而不是默认的~/.m2/repository,加参数指定本地仓库路径即可:
      mvn dependency:go-offline -Dmaven.repo.local=./my-local-repo
    2. 如果必须基于之前导出的依赖列表文件下载,可以先把文件里的依赖坐标整理成groupId:artifactId:version的标准格式(每行一个),再写简单脚本逐行调用Maven命令下载,以Linux/macOS下的shell脚本为例:
      # 从导出的列表文件中过滤出标准依赖坐标,去重
      grep -oE '[a-zA-Z0-9._-]+:[a-zA-Z0-9._-]+:[a-zA-Z0-9._-]+' dependency-list.txt | sort | uniq > pure-coords.txt
      # 逐行下载依赖
      while read artifact; do
        mvn dependency:get -Dartifact="$artifact" -Dtransitive=false
      done < pure-coords.txt
      
      因为导出的列表已经包含所有传递依赖,这里加-Dtransitive=false可以避免重复解析传递依赖,提升下载速度。

提示:如果下载时需要走私服/代理,直接用本地已经配置好的Maven settings.xml即可,不需要额外加参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:31:13