本文介绍了Gradle传递依存关系排除未按预期工作. (如何摆脱com.google.guava:guava-jdk5:13.0?)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的build.gradle的片段:

here is a snippet of my 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中所见:

which imports multiple version of guava as you can see with 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)

我尝试通过以下方式删除对:的依赖:

I have tried removing the dependency to : by doing:

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保持不变.我也尝试过

but the dependencyInsight remains the same. I also tried

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

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

but again dependency insight remains the same. How do I get rid of com.google.guava:guava-jdk5:13.0 ?

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

Details:I've tried gradle 1.2 and 2.1 on a windows 8.1 box

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

The reason for me to try this is to get rid of this exception:

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

推荐答案

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

It turns out that guava-jdk5 is still being maintained.

所以我改变了这个:

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"包中的类以及所有描述的依赖项

And that fixed my issues, I can now use classes from the 'com.google.common' package in Google App Engine project with all the described dependencies

这篇关于Gradle传递依存关系排除未按预期工作. (如何摆脱com.google.guava:guava-jdk5:13.0?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 06:13