'->' 是什么意思(箭头)在 gradle 的依赖图中是什么意思? [英] What does '->' (arrow) mean in gradle's dependency graph?
问题描述
我正在尝试运行一些 Android 测试,但是,编译器抱怨存在多个 dex 文件.
I'm trying to run some Android tests, however, the compiler complains that multiple dex files exist.
Multiple dex files define Lorg/hamcrest/MatcherAssert;
所以我试图过滤重复的依赖项:$ ./gradlew -q dependencies app:dependencies --configuration androidTestCompile
So I'm trying to filter duplicated dependencies: $ ./gradlew -q dependencies app:dependencies --configuration androidTestCompile
但是我得到以下输出:
------------------------------------------------------------
Project :app
------------------------------------------------------------
androidTestCompile - Classpath for compiling the androidTest sources.
+--- org.mockito:mockito-core:1.9.5
| +--- org.hamcrest:hamcrest-core:1.1 -> 1.3
| --- org.objenesis:objenesis:1.0 -> 2.1
+--- com.google.dexmaker:dexmaker-mockito:1.2
| +--- com.google.dexmaker:dexmaker:1.2
| --- org.mockito:mockito-core:1.9.5 (*)
+--- com.android.support.test.espresso:espresso-core:2.0
| +--- com.squareup:javawriter:2.1.1
| +--- org.hamcrest:hamcrest-integration:1.1
| | --- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- org.hamcrest:hamcrest-library:1.1
| | --- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- javax.inject:javax.inject:1
| +--- com.android.support.test.espresso:espresso-idling-resource:2.0
| +--- com.android.support.test:testing-support-lib:0.1
| | --- junit:junit-dep:4.10
| | --- org.hamcrest:hamcrest-core:1.1 -> 1.3
| +--- com.google.code.findbugs:jsr305:2.0.1
| +--- javax.annotation:javax.annotation-api:1.2
| --- org.hamcrest:hamcrest-core:1.1 -> 1.3
+--- com.android.support.test:testing-support-lib:0.1 (*)
+--- org.powermock:powermock-module-junit4:1.5.6
| +--- junit:junit:4.11
| | --- org.hamcrest:hamcrest-core:1.3
| --- org.powermock:powermock-module-junit4-common:1.5.6
| +--- junit:junit:4.4 -> 4.11 (*)
| +--- org.powermock:powermock-core:1.5.6
| | +--- org.powermock:powermock-reflect:1.5.6
| | | --- org.objenesis:objenesis:2.1
| | --- org.javassist:javassist:3.18.2-GA
| --- org.powermock:powermock-reflect:1.5.6 (*)
--- org.powermock:powermock-api-mockito:1.5.6
--- org.powermock:powermock-api-support:1.5.6
+--- org.powermock:powermock-core:1.5.6 (*)
--- org.powermock:powermock-reflect:1.5.6 (*)
(*) - dependencies omitted (listed previously)
我对箭头 (->) 的含义感到困惑.它们是什么意思?
I'm confused as what the arrows (->) mean. What do they mean?
推荐答案
表示依赖图包含多个具有相同group
和module
但版本不同的依赖,例如org.hamcrest:hamcrest-core
.Gradle 尝试自动解决冲突版本 - 默认情况下选择最新版本.->
的左侧是请求的版本,右侧是将选择的版本.这里可以找到类似的问题.
It means that dependency graph contains multiple dependencies with the same group
and module
but different versions for e.g. org.hamcrest:hamcrest-core
. Gradle tries to resolve conflicted versions automatically - by default the latest version is chosen. On the left side of ->
is the requested version, on the right the version that will be picked. Here similar question can be found.
这篇关于'->' 是什么意思(箭头)在 gradle 的依赖图中是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!