简介
SNAPSHOT 版开发中,不稳定。Release 版稳定。
场景
协同开发,A 依赖组件 B(会更新),B 用 SNAPSHOT 标识自己。
- B 不用 SNAPSHOT 而每更新后都用一稳定版,版本号升级过快,每天一升甚至每小时一升致版本号滥用。
- B 不用 SNAPSHOT,一直用某 Release 版本号,B 更新后 A 收不到更新。A 所用 Repository 通不频更新 Release 版缓存(本地 Repository),故 B 不换版本号方式更新后,A 拿 B 时发现本地已有该版本,即不去远程 Repository 下最新 B。
示例
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
defaultConfig {
applicationId "com.lalala.lalala"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
或
resolutionStrategy.cacheChangingModulesFor 10, 'minutes'
或
resolutionStrategy.cacheChangingModulesFor 24, 'hours'
}
}
dependencies {
...
}
注意
切忌不用 Release 版而所有地方都 SNAPSHOT 版。正式环境不可用 SNAPSHOT 版。今天依赖某 SNAPSHOT 版第三方库成功构建应用,明天构建或失败。因今晚第三方或更新 SNAPSHOT 库,再构建时 Maven 去远程Repository 下 SNAPSHOT 最新版,构建用库即新 jar,难保正确性。