gradle

maven 库 SNAPSHOT 含义?aar 更新无效?gra

2019-11-26  本文已影响0人  Ronnie_火老师

使用 maven 库的资源(比如 aar)是日常开发中经常使用的方式,无论 aar 是第三方的还是自己团队开发的,这种方式都给代码封装和重用带来了诸多便利。

引入的 aar 经常能看到 SNAPSHOT 后缀或者 changing = true 字样,还会遇到 aar 更新后不生效问题,本文就简介一下相关含义和原因。

SNAPSHOT

示例:

implementation('com.***.plugin:1.0.4-SNAPSHOT')

changing = true

示例:

implementation ('com.***.plugin':1.4) { changing = true }

cache

也许你会发现,标记了 chaning = true 或加入了 SNAPSHOT 后缀后,aar 的更新(没有升级版本号)并没有在依赖的项目中生效,原因是 gradle 有缓存机制,而且默认的缓存时间是 24 小时,所以需要进行如下配置,修改 gradle 缓存时间为 0 秒,来达到 aar 立即生效的效果;

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

如果不进行缓存时间设置,就需要手动清空 gradle 缓存,在 ~/.gradle/caches 目录下,搜索相关的文件并删除;还有一种说法是加入 --refresh--dependeces (例如 ./gradlew build --refresh-dependencies) 参数,相当于强制刷新依赖,但是这个没试过;

上一篇 下一篇

猜你喜欢

热点阅读