如何在Android Studio Gradle升级提示中排除SNAPSHOT及问题依赖版本
可以使用Gradle的Dependency Resolution功能实现版本过滤,以下是两种常用场景的配置方案:
全局过滤所有SNAPSHOT版本的升级提示
如果要彻底屏蔽所有SNAPSHOT版本的升级提示,在项目根目录的build.gradle文件中添加如下配置即可:
allprojects { configurations.all { resolutionStrategy { componentSelection { all { selection -> // 匹配所有带SNAPSHOT标识的版本,直接拒绝作为升级候选 if (selection.candidate.version.contains("SNAPSHOT")) { selection.reject("忽略所有SNAPSHOT版本") } } } } } }
如果你的项目使用Kotlin DSL(即配置文件后缀为.gradle.kts),对应配置如下:
allprojects { configurations.all { resolutionStrategy { componentSelection { all { if (candidate.version.contains("SNAPSHOT")) { reject("忽略所有SNAPSHOT版本") } } } } } }
配置完成后重新同步Gradle,Android Studio就不会再推送任何SNAPSHOT版本的升级提示。
单独屏蔽某个依赖的指定问题版本
如果不需要全局过滤,只想屏蔽特定依赖的某一个有问题的版本,可以针对性配置,比如要屏蔽xxx.yyy:yyy-lib的1.1.0-SNAPSHOT版本,配置如下:
allprojects { configurations.all { resolutionStrategy { componentSelection { // 仅针对指定依赖做版本过滤 withModule("xxx.yyy:yyy-lib") { selection -> if (selection.candidate.version == "1.1.0-SNAPSHOT") { selection.reject("该版本存在已知问题,暂不升级") } } } } } }
该配置只会屏蔽对应依赖的指定版本,其他依赖、其他版本的正常升级提示不受影响。
内容的提问来源于stack exchange,提问作者Yuri Schimke
相关产品推荐
相关产品推荐

