Gradle依赖输出中(c)与(n)后缀分别代表什么含义
Gradle依赖树输出后缀标记说明
执行gradlew dependencies扫描依赖时,输出条目末尾带的各类后缀标记含义如下:
(*):代表该依赖的完整嵌套子依赖关系已经在依赖树的其他分支展示过,此处不再重复展开子依赖内容,避免冗余信息占满输出。对应示例输出里的+--- com.jakewharton.timber:timber:4.7.1 (*)就属于这个场景。(n):全称为non-requireable,代表该条目是无法作为实际编译、运行类路径的配置元数据,不会参与最终的依赖解析、打包流程。这类条目一般来自平台BOM导入、纯版本规则声明的场景,本身不会引入实际的类库文件。(c):全称为constraint,代表该条目的最终解析版本是由依赖约束规则推导得出,而非依赖声明中直接指定的版本。对应示例输出里的+--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c),就是该依赖被严格版本约束锁定到4.7.1版本,后缀的(c)明确标识这个版本结果受约束规则影响,不属于依赖原始声明的直接版本。
补充说明:(c)、(n)这类标记是Gradle 6.0版本后新增的输出标识,旧版本Gradle的依赖输出仅会展示
(*)标记;新增这些标记的目的是帮助用户快速区分纯版本约束、非可加载的元数据条目,避免和实际会进入类路径的依赖条目混淆。
内容的提问来源于stack exchange,提问作者OrenIshShalom
相关产品推荐
相关产品推荐

