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
相关文章