Java 在scala项目中使用最新版本的google cloud bigquery库时出现NoSuchMethodException
在更新代码以使用最新版本的Java 在scala项目中使用最新版本的google cloud bigquery库时出现NoSuchMethodException,java,scala,sbt,google-cloud-platform,google-bigquery,Java,Scala,Sbt,Google Cloud Platform,Google Bigquery,在更新代码以使用最新版本的googlecloudstorage和googlecloudbigquery库(1.25.0版)之后,我们现在抛出了一个NoSuchMethodError 线程“main”java.lang.NoSuchMethodError中的异常:com.google.api.services.bigquery.model.JobReference.setLocation(Ljava/lang/String;)Lcom/google/api/services/bigquery/mo
googlecloudstorage
和googlecloudbigquery
库(1.25.0版)之后,我们现在抛出了一个NoSuchMethodError
线程“main”java.lang.NoSuchMethodError中的异常:com.google.api.services.bigquery.model.JobReference.setLocation(Ljava/lang/String;)Lcom/google/api/services/bigquery/model/JobReference代码>
在做了一些研究之后,这似乎是guava库的一个依赖性问题。然而,遵循其他地方发布的建议(覆盖guava依赖项)并没有解决这个问题,尝试了几个guava版本
看着依赖关系树,在我看来,guava依赖关系出现的唯一地方是google云库。有时它需要版本20.0和其他版本19.0。我附上了这棵树的一段摘录,这使我得出了这个结论
├─ com.google.cloud:google-cloud-bigquery:1.25.0
│ ├─ com.google.auto.value:auto-value:1.4
│ ├─ com.google.cloud:google-cloud-core:1.25.0
│ │ ├─ com.google.api:api-common:1.5.0
│ │ │ ├─ com.google.code.findbugs:jsr305:3.0.0 -> 3.0.1
│ │ │ └─ com.google.guava:guava:19.0 -> 20.0
│ │ ├─ com.google.api:gax:1.23.0
│ │ │ ├─ com.google.api:api-common:1.5.0
│ │ │ │ ├─ com.google.code.findbugs:jsr305:3.0.0 -> 3.0.1
│ │ │ │ └─ com.google.guava:guava:19.0 -> 20.0
│ │ │ ├─ com.google.auth:google-auth-library-oauth2-http:0.9.0
│ │ │ │ ├─ com.google.auth:google-auth-library-credentials:0.9.0
│ │ │ │ ├─ com.google.guava:guava:19.0 -> 20.0
│ │ │ │ ├─ com.google.http-client:google-http-client:1.19.0 -> 1.23.0
│ │ │ │ │ ├─ com.google.code.findbugs:jsr305:1.3.9 -> 3.0.1
│ │ │ │ │ └─ org.apache.httpcomponents:httpclient:4.0.1 -> 4.3.6
│ │ │ │ │ ├─ commons-codec:commons-codec:1.6 -> 1.10
│ │ │ │ │ ├─ commons-logging:commons-logging:1.1.3
│ │ │ │ │ └─ org.apache.httpcomponents:httpcore:4.3.3
│ │ │ │ └─ com.google.http-client:google-http-client-jackson2:1.19.0 -> 1.23.0
│ │ │ │ ├─ com.fasterxml.jackson.core:jackson-core:2.1.3 -> 2.9.4
│ │ │ │ └─ com.google.http-client:google-http-client:1.23.0
│ │ │ │ ├─ com.google.code.findbugs:jsr305:1.3.9 -> 3.0.1
│ │ │ │ └─ org.apache.httpcomponents:httpclient:4.0.1 -> 4.3.6
│ │ │ │ ├─ commons-codec:commons-codec:1.6 -> 1.10
│ │ │ │ ├─ commons-logging:commons-logging:1.1.3
│ │ │ │ └─ org.apache.httpcomponents:httpcore:4.3.3
│ │ │ ├─ com.google.code.findbugs:jsr305:3.0.0 -> 3.0.1
│ │ │ ├─ com.google.guava:guava:20.0
│ │ │ └─ org.threeten:threetenbp:1.3.3
有人能提供一些建议吗?我无法想象我们是唯一遇到这个问题的人 在我的例子中,解决方案是删除一些旧的依赖项:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-bigquery</artifactId>
<version>0.11.0-beta</version>
</dependency>
com.google.cloud
谷歌云大查询
0.11.0-beta
我发现它可能有用。Quote:“查看堆栈跟踪…如果在库中的对象上调用方法时出现异常,则在编译和运行时很可能使用库的不同版本。请确保在两个位置都有正确的版本。”