gradleの依存関係グラフで「->」(矢印)はどういう意味ですか?


83

いくつかのAndroidテストを実行しようとしていますが、コンパイラーが複数のdexファイルが存在すると文句を言います。

Multiple dex files define Lorg/hamcrest/MatcherAssert;

だから私は重複した依存関係をフィルタリングしようとしています: $ ./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)

矢印(->)の意味がわかりません。それらはどういう意味ですか?

回答:


136

これは、依存関係グラフが同じで複数の依存関係を含んでいることを意味groupし、module例えばのために、異なるバージョンをorg.hamcrest:hamcrest-core。Gradleは、競合するバージョンを自動的に解決しようとします。デフォルトでは、最新バージョンが選択されます。左側->はリクエストされたバージョン、右側は選択されるバージョンです。ここで同様の質問を見つけることができます。


1
私は賛成しましたが、省略された依存関係の意味を説明できますか?
java123999 2016年

1
これは、レポートの他の場所で、依存関係がすでにサブ依存関係全体とともに提示されていることを意味します。したがって、ここではルートのみです。
オパール2016年

3
@ java123999。依存関係には、独自の依存関係がある場合があります。また、依存関係が2回リストされている場合もあります。このような場合、最初のエントリの依存関係のみが出力され、2番目のエントリは(*)。でマークされます。
オパール2016年

1
したがって、*は基本的に重複する依存関係を示しますか?
java123999 2016年

1
少なくともx個の記号を書く必要がない場合は、次のように書くだけです。はい。
オパール2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.