maven项目中引用了最新版的谷歌guava包
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.1.0-jre</version>
</dependency>
编译没问题,然后运行时报错
java.lang.NoSuchMethodError: 'int com.google.common.base.Preconditions.checkPositionIndex(int, int)
很明显是jar包冲突了,用idea自带的jar包依赖关系树看到是依赖传递导致的冲突,
尝试使用依赖排除和锁定版本都无法屏蔽冲突的版本,此时也花费不少时间,不想继续深挖
最后去仓库找了另外一个guava依赖的版本,就好了,只要目录结构不一样的话,就不会报那个NoSuchMethodError了
最终使用的版本:
<dependency>
<groupId>com.vaadin.external.google</groupId>
<artifactId>guava</artifactId>
<version>16.0.1.vaadin1</version>
</dependency>