如何理解`gradle dependencies`中的`org.ow2.asm:asm-tree:4.0 -> 5.0.3 (*)`?
How to understand `org.ow2.asm:asm-tree:4.0 -> 5.0.3 (*)` in `gradle dependencies`?
当我 运行 gradle dependencies
在一个项目上时,它显示了依赖树,其中一些看起来像:
+--- org.ow2.asm:asm:5.0.3
+--- com.jayway.restassured:rest-assured:1.8.1
| +--- org.codehaus.groovy:groovy:2.1.2
| | +--- antlr:antlr:2.7.7
| | +--- org.ow2.asm:asm-tree:4.0 -> 5.0.3 (*)
| | +--- org.ow2.asm:asm-commons:4.0 -> 5.0.3 (*)
| | +--- org.ow2.asm:asm:4.0 -> 5.0.3
最后3行,每行有两个版本,4.0
和5.0.3
。
我可以从这条线上得到什么信息?是不是说rest-assured 1.8.1
依赖了4.0
,现在发现有新版本5.0.3
,就用新版本?
这样使用安全吗?将 rest-assured
升级到在 ASM 5.0.3
上回复的新版本是否更好?
tl;dr
看看 答案。
说明
这意味着在依赖项中存在 冲突 - 具有相同的组和 artifactId。它们通常在指定依赖项的情况下被传递下载。 Gradle 尝试自动解决它 - 通过选择最新版本(用 ->
签名)。可以排除冲突的依赖项。
当我 运行 gradle dependencies
在一个项目上时,它显示了依赖树,其中一些看起来像:
+--- org.ow2.asm:asm:5.0.3
+--- com.jayway.restassured:rest-assured:1.8.1
| +--- org.codehaus.groovy:groovy:2.1.2
| | +--- antlr:antlr:2.7.7
| | +--- org.ow2.asm:asm-tree:4.0 -> 5.0.3 (*)
| | +--- org.ow2.asm:asm-commons:4.0 -> 5.0.3 (*)
| | +--- org.ow2.asm:asm:4.0 -> 5.0.3
最后3行,每行有两个版本,4.0
和5.0.3
。
我可以从这条线上得到什么信息?是不是说rest-assured 1.8.1
依赖了4.0
,现在发现有新版本5.0.3
,就用新版本?
这样使用安全吗?将 rest-assured
升级到在 ASM 5.0.3
上回复的新版本是否更好?
tl;dr
看看
说明
这意味着在依赖项中存在 冲突 - 具有相同的组和 artifactId。它们通常在指定依赖项的情况下被传递下载。 Gradle 尝试自动解决它 - 通过选择最新版本(用 ->
签名)。可以排除冲突的依赖项。