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

AEM Maven原型项目集成Selenium遇ImmutableMap方法缺失错误求助

解决AEM Maven项目中Selenium的Guava依赖冲突问题

问题原因

java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.of(...) 错误本质是依赖版本冲突:AEM项目自身依赖的旧版本Guava,覆盖了Selenium 4.9.1所需的Guava 31.0.1-jre。旧版本Guava中ImmutableMap.of()的方法重载与Selenium调用的不匹配,导致方法找不到。

解决方案

1. 定位冲突来源

先通过Maven命令排查项目中所有Guava依赖的路径,找出引入旧版本的依赖:

mvn dependency:tree -Dincludes=com.google.guava:guava

输出结果会显示每个Guava版本的引入来源(比如AEM的核心依赖、其他第三方库等)。

2. 排除旧版本Guava依赖

在引入旧Guava的依赖节点中,添加排除规则,阻止其传递引入旧版本。例如,如果是AEM SDK API依赖导致的冲突:

<dependency>
    <groupId>com.adobe.aem</groupId>
    <artifactId>aem-sdk-api</artifactId>
    <version>你的AEM版本号</version>
    <scope>provided</scope>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>

根据第一步排查的结果,替换为实际的冲突依赖坐标。

3. 强制锁定Guava版本(可选)

如果排除操作后仍有冲突,可以在pom.xml的<dependencyManagement>节点中强制指定Guava版本,确保整个项目统一使用Selenium要求的版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>31.0.1-jre</version>
        </dependency>
    </dependencies>
</dependencyManagement>

4. 验证修复结果

执行以下命令确认项目中Guava版本已统一为31.0.1-jre:

mvn dependency:tree | grep guava

确认输出中只有31.0.1-jre版本后,重新运行Selenium测试即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:47:12