IntelliJ IDEA中JRE依赖问题求助:无法解析guava依赖
错误信息
Could not resolve com.google.guava:guava:32.1.2-jre.
Required by:
project : > org.seleniumhq.selenium:selenium-java:4.15.0 > org.seleniumhq.selenium:selenium-remote-driver:4.15.0
project : > org.seleniumhq.selenium:selenium-java:4.15.0 > org.seleniumhq.selenium:selenium-support:4.15.0
project : > org.seleniumhq.selenium:selenium-java:4.15.0 > org.seleniumhq.selenium:selenium-firefox-driver:4.15.0 > org.seleniumhq.selenium:selenium-http:4.15.0
当前状况
不清楚问题频繁出现的具体原因,有时表现为版本不匹配,有时是其他未知问题。已尝试重新创建项目、重新加载Gradle、配置Google依赖仓库等网上能找到的方法,但问题依旧存在。希望找到可行的解决办法,或通过刷新项目消除依赖不匹配等根本性问题。
项目构建文件(build.gradle)
plugins { id 'java' } repositories { mavenCentral() } dependencies { implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '4.11.0' testImplementation 'org.testng:testng:7.4.0' compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22' compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' implementation group: 'io.qameta.allure', name: 'allure-testng', version: '2.17.1' } test { useTestNG() }
解决办法
1. 锁定Guava版本
错误显示项目实际依赖Selenium 4.15.0(但构建文件中写的是4.11.0,大概率是依赖传递导致版本自动升级),直接强制指定Guava版本即可:
// 在dependencies块中添加 implementation group: 'com.google.guava', name: 'guava', version: '32.1.2-jre' // 或者用Gradle规则强制所有模块使用同一版本 configurations.all { resolutionStrategy.force 'com.google.guava:guava:32.1.2-jre' }
2. 清理Gradle缓存并重新构建
缓存损坏是常见的依赖拉取失败原因,执行以下命令清理缓存并刷新依赖:
# Windows系统 gradlew clean build --refresh-dependencies # Mac/Linux系统 ./gradlew clean build --refresh-dependencies
3. 完善仓库配置
除了mavenCentral(),添加Google仓库增强包的获取可靠性:
repositories { mavenCentral() google() }
4. 统一Selenium版本
构建文件指定的是Selenium 4.11.0,但错误中显示依赖的是4.15.0,说明有其他依赖间接升级了Selenium。建议明确锁定版本,避免冲突:
// 要么保持指定的4.11.0版本 implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '4.11.0' // 要么直接升级到稳定的4.15.0版本 // implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '4.15.0'
5. 切换国内镜像仓库(网络受限场景)
如果网络访问Maven中央仓库不稳定,可改用国内镜像,比如阿里云:
repositories { maven { url 'https://maven.aliyun.com/repository/public/' } mavenCentral() }
内容的提问来源于stack exchange,提问作者Krishna Singhal

