Caused by: java.lang.UnsupportedClassVersionError: com/google/common/annotations/VisibleForTesting : Unsupported major.minor version 52.0 (unable to load class com.google.common.annotations.VisibleForTesting)
突然间,没有任何与gradle或java jdk / jre版本相关的更改,我在构建服务器(ec2)上遇到此运行时错误。如果我在我的本地计算机上运行它,我就不会得到它。
我确保java -version为我的构建服务器和本地计算机返回1.7.0_x。 直到今天这么长时间都很好。
答案 0 :(得分:3)
从假期返回后重新构建未修改的应用程序时遇到同样的问题。依赖树中的库现在依赖于 Google Guava库的最新版本,这需要java 1.8。
从异常中您可以看到com/google/common/annotations/VisibleForTesting
导致您的问题。注释类型VisibleForTesting是Google Guava库的一部分。由于有几周Guava Release 21.0可用。从Release Notes您可以阅读...
重要:Guava 21.0需要Java 8.
您可能没有更改过应用程序的依赖关系树,但是对于所有这些,确实存在对Guava 21.0的间接依赖关系。就我而言,com.googlecode.owasp-java-html-sanitizer依赖于Guava 21.0。下载JAR并查看依赖配置(在我的情况下是maven)我看到需要一个Guava版本> = 11.0。这将解析为最新版本,因此21.我的IDE中的依赖性hierarchie视图得出了相同的结论。
由于您在此期间已将构建服务器升级到JRE 1.8,因此问题已解决(在构建服务器上)。请注意:当您将应用程序投入生产时,您的服务器也需要JRE 1.8。