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

Maven internal.aether与eclipse aether-util依赖冲突启动报错求助

解决Maven依赖版本冲突导致的应用启动失败问题

异常信息(翻译后)


应用启动失败


描述:

尝试调用一个不存在的方法。调用发起位置:

org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory.newRepositorySession(DefaultRepositorySystemSessionFactory.java:180)

不存在的方法:

org.eclipse.aether.util.repository.DefaultMirrorSelector.add(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/String;)Lorg/eclipse/aether/util/repository/DefaultMirrorSelector;

调用方类org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory的加载路径:

jar:file:/Users/username/.m2/repository/org/apache/maven/maven-core/3.8.1/maven-core-3.8.1.jar!/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.class

被调用方类org.eclipse.aether.util.repository.DefaultMirrorSelector的可用路径:

jar:file:/Users/username/.m2/repository/org/eclipse/aether/aether-util/1.1.0.redhat-1/aether-util-1.1.0.redhat-1.jar!/org/eclipse/aether/util/repository/DefaultMirrorSelector.class

被调用方类的层级加载路径:

org.eclipse.aether.util.repository.DefaultMirrorSelector: file:/Users/username/.m2/repository/org/eclipse/aether/aether-util/1.1.0.redhat-1/aether-util-1.1.0.redhat-1.jar

操作建议:

修正应用的类路径,使其包含org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory和org.eclipse.aether.util.repository.DefaultMirrorSelector的兼容版本

问题根源

这是典型的依赖版本冲突:你使用的Maven Core 3.8.1依赖的Eclipse Aether版本(1.9.x系列),与项目中引入的aether-util:1.1.0.redhat-1版本不兼容——低版本的DefaultMirrorSelector类没有高版本Maven Core需要的方法签名,导致调用失败。

解决步骤

1. 定位冲突依赖的来源

执行Maven命令排查依赖树,找到引入低版本aether-util的具体依赖:

mvn dependency:tree -Dverbose -Dincludes=org.eclipse.aether:aether-util

命令输出会显示所有引入该依赖的路径,比如[groupId]:[artifactId]:[version] -> org.eclipse.aether:aether-util:1.1.0.redhat-1。

2. 排除冲突依赖并强制指定兼容版本

  • 在引入冲突依赖的pom节点中添加排除规则,阻止低版本aether-util被引入:
<dependency>
  <!-- 替换为你找到的引入冲突的依赖 -->
  <groupId>com.example</groupId>
  <artifactId>conflicting-dependency</artifactId>
  <version>x.y.z</version>
  <exclusions>
    <exclusion>
      <groupId>org.eclipse.aether</groupId>
      <artifactId>aether-util</artifactId>
    </exclusion>
  </exclusions>
</dependency>
  • 在项目的dependencyManagement节点中强制指定与Maven 3.8.1兼容的aether-util版本(推荐1.9.0):
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.aether</groupId>
      <artifactId>aether-util</artifactId>
      <version>1.9.0</version>
    </dependency>
    <!-- 若存在其他Aether组件(如aether-api、aether-impl),也需同步指定1.9.0版本 -->
  </dependencies>
</dependencyManagement>

3. 清理缓存并重新构建

执行命令清理本地仓库缓存,重新下载兼容版本的依赖并构建项目:

mvn clean install -U

4. 验证其他Aether组件版本

检查项目中所有Aether相关依赖的版本,确保它们统一为1.9.0,避免出现连锁版本冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:20:38