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

Apple Silicon Mac Eclipse开发Rest Client遇Maven依赖解析错误求助

问题分析与解决方案

问题场景

在Apple Silicon芯片的MacBook Pro上,使用Eclipse 2022-03/4.23.0开发Rest Client Maven项目时,更新项目出现以下错误:

Could not calculate build plan: Plugin org.apache.maven.plugins:maven-jar-plugin:2.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.4
Plugin org.apache.maven.plugins:maven-jar-plugin:2.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.4

项目pom.xml配置如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>RestClient</groupId>
  <artifactId>RestClient</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
  <dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.29.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.inject</groupId>
    <artifactId>jersey-hk2</artifactId>
    <version>2.29.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.25.1</version>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>
</dependencies>
</project>

本地使用zulu18.28.13-ca-jdk18.0.0-macosx_aarch64,编译目标为Java 1.8,项目在Windows上可正常运行,Mac上报错,已排除防火墙问题。

核心原因

  1. 旧版Maven插件不兼容ARM架构:maven-jar-plugin:2.4是2012年的旧版本,对Apple Silicon的ARM64架构支持不足,且与高版本JDK(如JDK18)存在兼容性冲突,导致无法正确解析依赖。
  2. JDK版本与编译目标不匹配:用JDK18(ARM64)编译Java 1.8代码,跨版本编译的配置可能触发插件依赖解析时的架构适配问题。
  3. Maven本地仓库缓存损坏:Mac上的Maven本地仓库可能存在损坏的插件缓存文件,导致依赖解析失败。

解决方法

1. 升级Maven插件版本

在pom.xml的<build><plugins>节点中,显式添加并升级maven-jar-plugin到兼容ARM架构的新版本(推荐3.3.0),同时升级maven-compiler-plugin以适配JDK18:

<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <!-- 添加release参数确保跨版本编译的兼容性 -->
                <release>8</release>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.3.0</version>
        </plugin>
    </plugins>
</build>

2. 清理Maven本地仓库缓存

  • 打开Finder,前往路径~/.m2/repository
  • 删除org/apache/maven/plugins/maven-jar-plugin整个目录
  • 在Eclipse中右键项目 → Maven → Update Project,勾选"Force Update of Snapshots/Releases",点击确定重新下载依赖

3. (可选)切换到ARM版JDK8

如果希望保持编译环境与目标版本一致,可以安装Zulu的ARM版JDK8(zulu8.68.0.21-ca-jdk8.0.362-macosx_aarch64),然后在Eclipse中配置:

  • 打开Eclipse → Preferences → Java → Installed JREs → 添加新下载的JDK8
  • 右键项目 → Properties → Java Build Path → 切换到该JRE
  • 右键项目 → Properties → Java Compiler → 确认编译级别为1.8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:27:37