guava的一次版本冲突

1、现象

在系统中没有显式依赖guava-10.0.1 但是执行mvn install 时 下载了 guava-10.0.1   在 mvn dependency:tree 中只能看到版本 guava-12.0.1 ,在整个项目及依赖的jar中搜索也没有guava的具体引用配置

使用this.getClass().getResource("/com/google/common/cache/CacheBuilder.class") 查看 确实是引用了版本10 

我所使用的方法是版本11之后才有 所以一直报错 没有响应的方法

2、错误定位过程中的尝试

加入更高版本的guava -》结果还是被版本10 覆盖

3、具体原因

实际上因为使用了公司内部的一个plugin 而plugin中依赖的maven-core 依赖了 guava-10.0.1 所以查询不到但是却实实在在覆盖了其他版本的 

4、最终解决方法

尝试在引用方排除plugin中的guava 并没有成功

plugin提供方协助提供一个排除guava版本的plugin 

 

### 解决 Maven 构建中无法解析 `com.google.guava:guava:29.0-jre` 的问题 在处理 Maven 项目时,如果遇到无法解析 `com.google.guava:guava:29.0-jre` 的错误,通常可能是由于以下几个原因引起的: #### 1. **仓库配置缺失** Maven 默认的中央仓库可能未及时更新某些依赖项。因此,在项目的 `pom.xml` 文件中显式指定 Google 的 Maven 存储库可以解决问题[^1]。 ```xml <repositories> <repository> <id>google-maven-central</id> <url>https://maven.google.com</url> </repository> </repositories> ``` 通过上述方式添加 Google 官方存储库后重新执行构建命令即可尝试解决该问题。 #### 2. **网络连接问题** 有时本地环境中的代理设置或防火墙可能导致 Maven 无法正常访问远程仓库下载所需的 JAR 包文件[^3]。可以通过以下几种方法来排查此情况: - 使用 `-U` 参数强制刷新依赖缓存: ```bash mvn clean install -U ``` - 如果公司内部有私有的 Nexus 或 Artifactory,则需确认其是否同步了 Guava 库的相关版本,并调整相应的镜像地址。 #### 3. **冲突版本管理** 当多个模块引入不同版本号的 Guava 库时容易引发兼容性矛盾。借助工具分析实际加载路径有助于定位具体哪个地方存在重复定义的情况[^2]: ```bash mvn dependency:tree | grep guava ``` 根据返回的结果手动排除掉不必要的低版次声明: ```xml <dependencyManagement> <dependencies> <!-- 明确指明统一使用的Guava版本 --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>29.0-jre</version> </dependency> <!-- 排除其他间接引用的老版本 --> <dependency> <groupId>org.example.someotherlib</groupId> <artifactId>somelib</artifactId> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </dependencyManagement> ``` #### 4. **JAR包损坏校验失败** 偶尔也会碰到因目标资源本身存在问题而导致验证不过关的情形,比如压缩包为空白等情况[^4]。此时建议清理工作目录后再试一次完整的获取流程: ```bash rm -rf ~/.m2/repository/com/google/guava/* mvn clean package ``` 以上操作会彻底移除旧数据并触发新请求过程从而规避潜在风险。 --- ### 总结 综上所述,针对 Maven 中未能成功解析 `com.google.guava:guava:29.0-jre` 这一状况提供了四种常见应对策略——补充官方源链接、优化互联网通道质量、梳理复杂的依赖关系以及修正受损构件实例。每种办法都附带相应实践指导便于快速实施调试动作直至恢复正常运作状态为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值