向mysql连接器java添加依赖项会导致NoSuchMethodError:com.google.common.cache.CacheBuilder.maximumSize(I)出现在我的Play framework2应用程序中
正如标题所述,我添加了mysql依赖项:向mysql连接器java添加依赖项会导致NoSuchMethodError:com.google.common.cache.CacheBuilder.maximumSize(I)出现在我的Play framework2应用程序中,mysql,playframework-2.0,Mysql,Playframework 2.0,正如标题所述,我添加了mysql依赖项: val appName = "report" val appVersion = "1.0-SNAPSHOT" val appDependencies = Seq( "com.google.apis" % "google-api-services-analytics" % "v3-rev15-1.8.0-beta", "com.google.http-client" % "goog
val appName = "report"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
"com.google.apis" % "google-api-services-analytics" % "v3-rev15-1.8.0-beta",
"com.google.http-client" % "google-http-client-jackson2" % "1.11.0-beta",
"com.google.oauth-client" % "google-oauth-client-jetty" % "1.11.0-beta",
"mysql" % "mysql-connector-java" % "5.1.18",
)
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
resolvers += "Google Analytics" at "http://mavenrepo.google-api-java-client.googlecode.com/hg"
)
这导致:
原因:java.lang.NoSuchMethodError:com.google.common.cache.CacheBuilder.maximumSize(I)Lcom/google/common/cache/CacheBuilder
我猜mysql依赖项中有某种东西摆脱了这种方法。。。
但是什么呢?这通常意味着JAR版本的方法签名与调用代码中的方法签名不匹配。检查CacheBuilder JAR的版本。您可能不同步。好,找到了 首先,我需要更新Guava,因为Guava 11发生了变化:
CacheBuilder#maximumSize(int) has been replaced with CacheBuilder#maximumSize(long)
因此,我将Guava更新为最新版本13.0.1,但仍然出现了错误。这以后
反思仍然是错误的。将反射更改为0.9.8,一切正常
val appDependencies = Seq(
"com.google.apis" % "google-api-services-analytics" % "v3-rev15-1.8.0-beta",
"com.google.http-client" % "google-http-client-jackson2" % "1.11.0-beta",
"com.google.oauth-client" % "google-oauth-client-jetty" % "1.11.0-beta",
"mysql" % "mysql-connector-java" % "5.1.18",
"org.reflections" % "reflections" % "0.9.8",
"com.google.guava" % "guava" % "13.0.1"
)
这让我想起了一个笑话,讲的是一个名叫西莫斯的爱尔兰人在纽约开车寻找停车位。他说:“上帝啊,如果你能给我找个地方的话,我保证我会放弃威士忌,开始每周去教堂。”当他完成祈祷时,一个地方奇迹般地打开了。他笑了笑,向天空望去,说:“没关系!我找到了一个!”如果我认为对其他有同样问题的开发人员来说,这个答案足够好,我当然会标记你的答案。有一个更准确的答案不是比一个暗示更好吗?如果你不同意,我会很乐意改变正确的答案。你可能不明白这个笑话:我给你的不仅仅是一个暗示。让你通过问题中的问题的步骤是我告诉你的。你应用程序中用于番石榴和反思的罐子不正确。这个暗示是根据你的问题所能给出的。您可以根据需要更改您的回答。