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

如何编写命令行工具从Maven下载指定依赖的Sources Jar?

解决方案

1. 修正Maven dependency:copy命令

你之前的命令漏了-D参数的横杠,正确命令可直接指定sources classifier下载:

mvn dependency:copy -Dartifact=log4j:log4j:1.2.8:sources -DoutputDirectory=./downloads
  • -Dartifact格式为groupId:artifactId:version:classifier,明确指定sources即可精准获取源码包
  • -DoutputDirectory可自定义下载目录,默认会放到当前目录的target/dependency下

如果要通过独立的groupId、artifactId、version参数传递,可在脚本中拼接参数:

mvn dependency:copy -Dartifact=$GROUP_ID:$ARTIFACT_ID:$VERSION:sources -DoutputDirectory=./downloads

2. 使用Maven dependency:get命令(无需本地pom.xml)

该目标无需本地存在pom.xml,直接指定参数即可完成下载:

mvn dependency:get -Dartifact=log4j:log4j:1.2.9:sources -Ddest=./log4j-1.2.9-sources.jar
  • -Ddest可直接指定下载后的文件名,完美匹配你需要的命名格式
  • 同样支持变量拼接,适合集成到自定义命令行工具中

3. 轻量替代:Apache Ivy命令行工具

若不想依赖完整Maven环境,可使用Apache Ivy的命令行工具,配置更简洁:

ivy -dependency log4j log4j 1.2.9 -retrieve "lib/[artifact]-[revision]-[classifier].jar" -confs default,sources

Ivy会自动识别仓库中的源码包并完成下载,适合轻量化场景

注意事项

若执行命令后未下载到源码包,大概率是该依赖未将sources包发布到对应Maven仓库,需先确认仓库中是否存在对应的sources分类包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:16:02