当前位置: 首页 > 面试题库 >

Gradle传递依存关系排除功能无法正常工作。(如何摆脱com.google.guava:guava-jdk5:13.0?)

倪棋
2023-03-14
问题内容

这是我的build.gradle的片段:

compile 'com.google.api-client:google-api-client:1.19.0'
compile 'com.google.apis:google-api-services-oauth2:v2-rev77-1.19.0'
compile 'com.google.apis:google-api-services-plus:v1-rev155-1.19.0'
compile 'com.google.appengine.tools:appengine-gcs-client:0.4.1'
compile 'com.google.appengine.tools:appengine-mapreduce:0.8'

您可以通过dependencyInsight看到导入的番石榴的多个版本:

com.google.guava:guava:15.0 (conflict resolution)

com.google.guava:guava:14.0.1 -> 15.0
+--- com.googlecode.objectify:objectify:4.1.3
|    \--- default
\--- net.eusashead.spring:spring-cache-gae:1.0.0.RELEASE
     \--- default

com.google.guava:guava:[15.0,15.99] -> 15.0
+--- com.google.appengine.tools:appengine-gcs-client:0.4.1
|    +--- default
|    +--- com.google.appengine.tools:appengine-mapreduce:0.8
|    |    \--- default
|    \--- com.google.appengine.tools:appengine-pipeline:0.2.10
|         \--- com.google.appengine.tools:appengine-mapreduce:0.8 (*)
+--- com.google.appengine.tools:appengine-mapreduce:0.8 (*)
\--- com.google.appengine.tools:appengine-pipeline:0.2.10 (*)

com.google.guava:guava-jdk5:13.0
\--- com.google.api-client:google-api-client:1.19.0
     +--- default
     +--- com.google.apis:google-api-services-oauth2:v2-rev77-1.19.0
     |    \--- default
     +--- com.google.apis:google-api-services-plus:v1-rev155-1.19.0
     |    \--- default
     +--- com.google.appengine.tools:appengine-gcs-client:0.4.1
     |    +--- default
     |    +--- com.google.appengine.tools:appengine-mapreduce:0.8
     |    |    \--- default
     |    \--- com.google.appengine.tools:appengine-pipeline:0.2.10
     |         \--- com.google.appengine.tools:appengine-mapreduce:0.8 (*)
     +--- com.google.api-client:google-api-client-appengine:1.17.0-rc
     |    \--- com.google.appengine.tools:appengine-gcs-client:0.4.1 (*)
     +--- com.google.apis:google-api-services-storage:v1-rev1-1.18.0-rc
     |    \--- com.google.appengine.tools:appengine-gcs-client:0.4.1 (*)
     +--- com.google.apis:google-api-services-bigquery:v2-rev154-1.19.0
     |    \--- com.google.appengine.tools:appengine-mapreduce:0.8 (*)
     \--- com.google.api-client:google-api-client-servlet:1.17.0-rc
          \--- com.google.api-client:google-api-client-appengine:1.17.0-rc (*)

(*) - dependencies omitted (listed previously)

我尝试通过执行以下操作删除对:的依赖:

compile ('com.google.api-client:google-api-client:1.19.0'){
        exclude group: 'com.google.guava', module: 'guava-jdk5'
    }
compile ('com.google.api-client:google-api-client:1.19.0'){
        exclude group: 'com.google.guava', 
    }

但是dependencyInsight保持不变。我也试过

compile ('com.google.guava:guava:15.0'){force = true}

但是依赖依赖的见解仍然保持不变。如何摆脱com.google.guava:guava-jdk5:13.0?

详细信息:我已经在Windows 8.1盒上尝试过gradle 1.2和2.1

我尝试此操作的原因是摆脱了此异常:

java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.createStarted()Lcom/google/common/base/Stopwatch;

问题答案:

事实证明,guava-jdk5仍在维护中。

所以我改变了这个:

compile ('com.google.guava:guava:15.0'){force = true}

为了这:

compile('com.google.guava:guava-jdk5:17.0') { force = true }

这样就解决了我的问题,现在我可以将Google App Engine项目中“ com.google.common”包中的类与所有描述的依赖项一起使用



 类似资料:
  • 问题内容: 我很难弄清楚这里出了什么问题: 例如, 输出。它应该输出6,因为长度看起来像这样:5-> 16-> 8-> 4-> 2-> 1 进行一些调试后,我看到正确返回了,但是递归中出了点问题。我不太确定 谢谢你的帮助。 问题答案: 在这两个块中,进行递归调用后不会返回任何值。您需要在递归调用之前先输入,例如。如果您没有明确声明,该函数将返回。 这样可以解决此问题,但是有一种方法可以使您的代码更

  • 给予 这在gradle 1.3中无法正常工作。(即,子项目包含所有依赖项) 这是一个bug还是有不同的语法来排除项目依赖关系?

  • 我试图排除gradle中的传递依赖项 我看到这个错误 null 在类型为org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency的DefaultExternalModuleDependency{group='org.apache.kafka',name='kafka-streams',version

  • 问题内容: 我正在尝试使用Java中的 Split 函数拆分字符串 它给了我结果 但是当我尝试以下代码时 它给了我 为什么Java split函数无法拆分以“ |”分隔的字符串 问题答案: String#split()方法接受a 而不接受a 。 因为 是元字符,在正则表达式中有特殊含义。 当您逃脱它时,它会起作用。 更新: 在java:OFFICIAL DOCS中处理特殊字符 。 附带说明: 在J

  • 问题内容: 有谁知道为什么upload.onprogress在单独的功能上不能正常工作? 代码工作正常(进度条缓慢移动): 但是,如果我将其投入功能,它将无法正常工作: 在第二个代码上,进度条在文件上传完成后直接跳到100%,而不是在上传过程中很好地移到100% 因此,如果我将功能放进去,我已经尝试了提供的解决方案,它实际上可以工作。有没有办法把它放在函数之外? 问题答案: 通过调用函数本身,并将

  • 应用Firebase云消息传递依赖项时,Gradle同步失败。 我已经尝试了FCM的所有版本的应用程序,如17.0.0, 17.3.2, 15.0.0, 16.0.1等。