Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle依存关系树中星号和箭头符号的含义_Java_Android_Gradle_Android Gradle Plugin_Build.gradle - Fatal编程技术网

Java Gradle依存关系树中星号和箭头符号的含义

Java Gradle依存关系树中星号和箭头符号的含义,java,android,gradle,android-gradle-plugin,build.gradle,Java,Android,Gradle,Android Gradle Plugin,Build.gradle,我已经运行了gradlew命令来获取Gradle依赖关系树: gradlew.bat应用程序:依赖项 在输出时,我得到了与每个依赖项相关的不同类型的符号: 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 有些依赖项没有任何符号,有些依赖项带有(*)和-> 这些符号是什么意思

我已经运行了
gradlew
命令来获取Gradle依赖关系树:

gradlew.bat应用程序:依赖项

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

 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
有些依赖项没有任何符号,有些依赖项带有
(*)
->

这些符号是什么意思


我已尝试搜索此内容,但未能找到有关此内容的任何帮助。

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

(*)
位于依赖项旁边,已经通过其他工件导入,从而导致重复

/gradlew:app:dependencies
输出的末尾,您可以看到:

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

因此,
com.android.support:recyclerview-v7:23.2.0->25.0.0
意味着
25.0.0
版本已经导入,但特别是工件依赖于较旧的
23.2.0
版本


请参阅Droidcon Italy 2017演讲中的解释。

谢谢,如果我得到这些符号,那么我需要从包含这些符号的库中排除这些库?一个完美的
gradle树
不会有这些符号吗?我看不出
(*)
有什么问题,因为它们不会影响你的dex大小,而
->
对你来说是一个明确的信号,你不必要地扩大了apk的dex大小。删除该依赖项并不简单,因为您无法确定依赖于较旧版本的模块在较新版本上是否能正常工作。