我的任务是通过 gradle 构建获得 dailyDebug、dailyRelease、standardDebug 和 standardRelease apk 文件。每个 apk 应包含具有不同版本和类型的常见应用程序列表,例如 dailyDebug 应包含具有最新集成版本和类型:debug 的 jar1 以及具有版本 01.05.02 和类型:release 的 standardRelease。
在 build.gradle 中,我有以下构建类型:
buildTypes {
debug {
signingConfig null
}
debugDaily {
signingConfig null
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig null
}
releaseDaily {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig null
}
}
这是每个 apk 中应该包含的 jar 列表。
"jar1:latest.integration:release"
"jar2:latest.integration:release"
"jar3:latest.integration:release"
"jar4:latest.integration:release"
"jar5:latest.integration:release"
最简单的解决方案之一是像这样进行大量复制粘贴:
dependencies {
debugApk "jar1:01.02:debug"
debugApk "jar2:02.03:debug"
debugApk "jar3:05.12:debug"
debugApk "jar4:01.32:debug"
debugApk "jar5:02.01:debug"
releaseApk "jar1:01.02:release"
releaseApk "jar2:02.03:release"
releaseApk "jar3:05.12:release"
releaseApk "jar4:01.32:release"
releaseApk "jar5:02.01:release"
debugDailyApk "jar1:latest.integration:debug"
debugDailyApk "jar2:latest.integration:debug"
debugDailyApk "jar3:latest.integration:debug"
debugDailyApk "jar4:latest.integration:debug"
debugDailyApk "jar5:latest.integration:debug"
releaseDailyApk "jar1:latest.integration:release"
releaseDailyApk "jar2:latest.integration:release"
releaseDailyApk "jar3:latest.integration:release"
releaseDailyApk "jar4:latest.integration:release"
releaseDailyApk "jar5:latest.integration:release"
}
我正在寻找一个通用的解决方案,因为 jar 列表会越来越大,将来很难维护。
提前谢谢你,这是这里的第一篇文章:)
最佳答案
我找到了解决方案并想与您分享。 所以在build.gradle中添加了2个函数:
def getDailyPackages(type){
String[] packages = [
"jar1:latest.integration:${type}"
"jar2:latest.integration:${type}"
"jar3:latest.integration:${type}"
"jar4:latest.integration:${type}"
"jar5:latest.integration:${type}"]
return packages
}
def getStandardPackages(type) {
String[] packages = [
"jar1:${jar1VersionName}:${type}",
"jar2:${jar2VersionName}:${type}",
"jar3:${jar3VersionName}:${type}",
"jar2:${jar4VersionName}:${type}",
"jar3:${jar5VersionName}:${type}",]
return packages
}
Jar 版本名称在 ext 部分声明:
ext {
jar1VersionName = '1.02'
jar2VersionName = '1.03'
jar3VersionName = '1.04'
jar4VersionName = '1.05'
jar5VersionName = '1.06'
}
最后用相应的类型调用它们:
dependencies {
debugApk(getStandardPackages("debug"))
releaseApk(getStandardPackages("release"))
debugDailyApk(getDailyPackages("debug"))
releaseDailyApk(getDailyPackages("release"))
}
希望这篇文章对您有所帮助:)
关于android - 如何在 Gradle 中包含不同版本的不同 apk 中的 jar 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43135357/