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

Maven打包时错误下载MAR依赖而非JAR的原因及解决办法

Maven尝试下载MAR格式依赖而非JAR的原因及解决办法

可能的原因

  • 传递依赖的POM配置错误:该依赖的官方POM文件里<packaging>标签被设置成了mar,Maven会严格遵循POM定义的打包类型去拉取对应文件。
  • 仓库元数据异常:本地或远程仓库的maven-metadata.xml文件出现篡改、生成错误,导致Maven误判该版本依赖仅存在MAR格式。
  • 项目自定义了依赖类型规则:项目的dependencyManagement块或者相关插件配置里,强制指定了这个依赖的类型为MAR。

解决办法

1. 显式声明依赖并指定JAR类型

在你的项目POM中,直接添加该依赖的声明,明确指定<type>jar</type>,覆盖传递依赖的类型配置:

<dependencies>
    <dependency>
        <groupId>x.y.z</groupId>
        <artifactId>artifact</artifactId>
        <version>1.0</version>
        <type>jar</type> <!-- 强制Maven下载JAR格式 -->
    </dependency>
</dependencies>

2. 清理本地缓存并刷新元数据

删除本地仓库中该依赖的对应目录(比如~/.m2/repository/x/y/z/artifact/1.0/),然后执行以下命令强制更新远程元数据:

mvn clean install -U

-U参数会让Maven忽略本地缓存的元数据,重新从远程仓库拉取最新的依赖信息。

3. 检查dependencyManagement配置

如果项目的父POM或当前POM的dependencyManagement里有该依赖的配置,检查是否错误设置了<type>mar</type>,如果有,修改为jar即可。

4. 修复仓库中的POM(有权限时)

如果你拥有远程仓库的操作权限,把该依赖的正确POM文件(<packaging>设为jar)部署到仓库,从根源解决传递依赖的类型错误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:03:29