1 Star 1 Fork 0

angcyo / UIKit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
version.gradle 3.06 KB
一键复制 编辑 原始数据 按行查看 历史
angcyo 提交于 2019-10-18 18:11 . * disable r8
/*2019-10-16 统一依赖库的版本号*/
/**
* 配置格式, 全局配置可以放在脚本 [apply] 之前的任意地方
* */
/*
ext.versionConfig = [
"androidx.core:core" : "1.0.0",
"androidx.annotation:annotation" : "1.0.0",
"androidx.arch.core:core-common" : "2.0.0",
"org.jetbrains.kotlin:kotlin-stdlib" : "1.3.50",
"org.jetbrains.kotlin:kotlin-stdlib-common": "1.3.50",
]
*/
//用来保存版本号不一样的依赖库
ext._allVersion = [:]
//用来过滤log输出
ext._logVersion = []
ext._logConfigError = false
project.configurations.all { defaultConfiguration ->
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
def packageName = "${requested.group}:${requested.name}"
//保存版本号
def versionArray = _allVersion[packageName]
if (versionArray == null) {
versionArray = []
_allVersion[packageName] = versionArray
}
def find = versionArray.any {
it == requested.version
}
if (!find) {
//没有找到相同版本, 则保存起来
_allVersion[packageName] += requested.version
if (versionArray.size > 1) {
//同一个库, 具有多个版本信息
error "${packageName} -> ${versionArray}"
}
}
try {
checkVersion(versionConfig, requested, details)
} catch (Throwable throwable) {
//throwable.printStackTrace()
if (throwable instanceof MissingPropertyException) {
if (!_logConfigError) {
error "未找到强制版本配置信息[ext.versionConfig]."
}
_logConfigError = true
} else {
throwable.printStackTrace()
}
}
try {
checkVersion(libVersionConfig, requested, details)
} catch (Throwable ignored) {
//ignored.printStackTrace()
}
}
}
def checkVersion(config, requested, details) {
if (config instanceof Map) {
def packageName = "${requested.group}:${requested.name}"
//强制修改指定的版本号
config.each { key, value ->
if (key == packageName) {
def originVersion = requested.toString()
//匹配到目标
if (value == '') {
//未设置版本号
println originVersion
} else if (requested.version != value) {
def log = _logVersion.any {
it == packageName
}
if (!log) {
//没有输出过log
println "${originVersion} -> ${value}"
}
_logVersion += packageName
details.useVersion value
}
}
}
}
}
static def error(Object msg) {
System.err.println msg
}
Java
1
https://gitee.com/angcyo/UIKit.git
git@gitee.com:angcyo/UIKit.git
angcyo
UIKit
UIKit
androidx

搜索帮助