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

Maven依赖同路径同名资源文件冲突的优先级规则是怎样的?

Maven同路径冲突资源加载优先级规则

你观测到的结果是符合Maven固定规则的必然结果,并非随机产生。

核心优先级规则

Maven打包时处理不同依赖下的同路径同名资源,优先级完全绑定pom.xml中依赖的声明顺序:

  • 依赖声明顺序越靠前,资源优先级越高
  • 出现同路径同名资源冲突时,高优先级依赖的资源会直接覆盖低优先级依赖的对应资源,最终打包产物中仅会保留优先级最高的一份

场景匹配说明

你当前的依赖声明顺序如下:

<dependency>
  <artifactId>a</artifactId>
</dependency>
<dependency>
  <artifactId>b</artifactId>
</dependency>

依赖a、b都包含META-INF/logo.png资源,因a的声明顺序早于b,打包时a中的logo.png优先级更高,会覆盖b中的同名资源,和你的实测结果完全一致。

调整方案

如果需要指定使用另一依赖的冲突资源,仅需要调整两个依赖在pom.xml中的声明顺序,将需要保留资源的依赖放在更靠前的位置即可。如果需要同时保留两份同名资源,可通过maven-resources-plugin对冲突资源做重命名或路径迁移处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:54:01