gradle依赖关系树中asterix和箭头符号的含义

时间:2017-04-27 11:09:13

标签: java android gradle android-gradle build.gradle

我已经运行gradlew命令来获取gradle依赖树。

  

gradlew.bat app:dependencies

在输出上我得到了与每个依赖关系相关的不同类型的符号:

 com.twotoasters.servos:util-otto:1.0.0
 com.squareup.okhttp:okhttp:2.4.0 (*)
 com.android.support:recyclerview-v7:23.2.0 -> 25.0.0

某些依赖项没有任何符号,有些依赖于(*)->

这些符号是什么意思?

我试图搜索这个,但没有找到任何帮助。

2 个答案:

答案 0 :(得分:10)

->位于依赖项的旁边,该依赖项已经通过其他工件导入,从而导致重复。

com.android.support:recyclerview-v7:23.2.0 -> 25.0.0输出结束时,您可以看到:enter image description here

25.0.0位于依赖项的旁边,该依赖项已通过其他工件导入,但使用较新的版本。 Gradle会更喜欢新版本。

因此,23.2.0意味着已导入Launcher.LaunchFolderAsync()版本,但特别是该工件依赖于较旧的<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- most important is order of layers --> <!-- Bottom right side 2dp Shadow --> <item > <shape android:shape="rectangle"> <solid android:color="#000000" /> </shape> </item> <!-- Bottom 2dp Shadow --> <item> <shape android:shape="rectangle"> <solid android:color="#BEBEBE" /> </shape> </item> <!-- White Top color --> <item android:bottom="3px" android:right="3px" android:top="3px" android:left="3px"> <shape android:shape="rectangle"> <solid android:color="#FFFFFF" /> </shape> </item> 版本。

请参阅Egor Andreevici来自Droidcon Italy 2017的"Making the most of your Gradle Builds"演讲中的+解释。

答案 1 :(得分:0)

->表示从版本23.2.025.0.0 在离线模式下运行gradle时非常有用,因此它将使用第一个可用的缓存版本 (*)我不确定,但我认为它是用于下载和编译以下所有库系列(核心等)...还有+代替版本代码,它将使用最新版本