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

为何先执行`mvn dependency:copy-dependencies`再`mvn package`会下载更多不同依赖?

Maven两步构建与单步构建的依赖下载差异排查求助

我有一个Maven管理的Java项目,要打包成Docker镜像的一部分。为优化Docker构建流程,我把依赖下载和编译打包拆成两个单独步骤,执行的命令是:

  • mvn dependency:copy-dependencies
  • mvn package
    实际场景包含更多参数,排查问题时已简化为这两个命令。

现象详情:

  • 两步流程中,第一个命令从Maven Central下载1080个文件;执行完第一个命令后再跑第二个,又额外下载232个文件。
  • 全新环境中直接单独执行mvn package,同样下载1080个文件,但其中约10%的文件和两步流程里第一个命令下载的不一样。

以下是过滤并排序后的下载日志差异片段(download_simple_12_sort.log是两步流程的日志,download_simple_2_sort.log是单独执行第二步的日志),能看到两类流程的下载共性与差异:部分依赖的jar+pom仅在两步流程中下载,部分依赖的pom都被下载但jar仅在其中一种流程中出现:

--- download_simple_12_sort.log 2023-11-28 14:37:53
+++ download_simple_2_sort.log  2023-11-28 14:37:58
@@ -1,5 +1,3 @@
-https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
-https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
 https://repo.maven.apache.org/maven2/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
 https://repo.maven.apache.org/maven2/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.pom
 https://repo.maven.apache.org/maven2/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar
@@ -63,6 +61,7 @@
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-augmentedairuntime/1.12.552/aws-java-sdk-augmentedairuntime-1.12.552.jar
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-augmentedairuntime/1.12.552/aws-java-sdk-augmentedairuntime-1.12.552.pom
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-autoscaling/1.12.552/aws-java-sdk-autoscaling-1.12.552.pom
+https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-autoscalingplans/1.12.552/aws-java-sdk-autoscalingplans-1.12.552.jar
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-autoscalingplans/1.12.552/aws-java-sdk-autoscalingplans-1.12.552.pom
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-backup/1.12.552/aws-java-sdk-backup-1.12.552.jar
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-backup/1.12.552/aws-java-sdk-backup-1.12.552.pom
@@ -589,6 +588,7 @@
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-workdocs/1.12.552/aws-java-sdk-workdocs-1.12.552.pom
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-worklink/1.12.552/aws-java-sdk-worklink-1.12.552.jar
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-worklink/1.12.552/aws-java-sdk-worklink-1.12.552.pom
+https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-workmail/1.12.552/aws-java-sdk-workmail-1.12.552.jar
 https://repo.maven.apache.org/maven2/com/amazonaws/aws-java-sdk-workmail/1.12.552/aws-java-sdk-workmail-1.12.552.pom

我怀疑下一步需要排查依赖树,但这超出了我的Maven知识范围,想请教可能导致该现象的原因,以及具体的排查方法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:12:03