![](/img/trans.png)
[英]Does the targetSDKVersion in the build.gradle file for an Android application automatically update when there is a new version of Android available?
[英]Update Android Application version (stored in build.gradle) with gradle
在gradle中执行某些任务时,是否可以更新Android或库的版本versionCode
和versionName
? versionCode / Name放在我的android / build.gradle中
我正在寻找一个完整的gradle脚本,而不是shell脚本。
它与如何在Android Gradle中自动增加versionCode的方式不同,因为versionCode和versioName存储在build.gradle中,而不在清单中
在您要更新的build.gradle中,我更改了脚本以编辑当前的build.gradle并递增versionCode和versionName。
将此任务添加到您的gradle中:
task incrementVersionCode << {
println("Incrementing Version Code...")
def manifestFile = file("build.gradle")
def patternVersionCode = Pattern.compile("versionCode (\\d+)")
def manifestText = manifestFile.getText()
def matcherVersionCode = patternVersionCode.matcher(manifestText)
matcherVersionCode.find()
def mVersionCode = Integer.parseInt(matcherVersionCode.group(1))
def mNextVersionCode = mVersionCode + 1
def manifestContent = matcherVersionCode.replaceAll("versionCode " + mNextVersionCode)
println("> Set versionCode(" + mVersionCode + ") to " + mNextVersionCode);
manifestFile.write(manifestContent)
}
task incrementVersionName << {
println("Incrementing Version Name...")
def manifestFile = file("build.gradle")
def patternVersionNumber = Pattern.compile("versionName \"(\\d+)\\.(\\d+)\\.(\\d+)\"")
def manifestText = manifestFile.getText()
def matcherVersionNumber = patternVersionNumber.matcher(manifestText)
matcherVersionNumber.find()
def majorVersion = Integer.parseInt(matcherVersionNumber.group(1))
def minorVersion = Integer.parseInt(matcherVersionNumber.group(2))
def pointVersion = Integer.parseInt(matcherVersionNumber.group(3))
def mVersionName = majorVersion + "." + minorVersion + "." + pointVersion
def mNextVersionName = majorVersion + "." + minorVersion + "." + (pointVersion + 1)
def manifestContent = matcherVersionNumber.replaceAll("versionName \"" + mNextVersionName + "\"")
println("> Set versionName(" + mVersionName + ") to " + mNextVersionName);
manifestFile.write(manifestContent)
}
用法
如果要在运行./gradlew bintrayUpload
时更新版本(例如mut,它可能是您想要的任务),请添加以下内容:
bintrayUpload.dependsOn incrementVersionCode
bintrayUpload.dependsOn incrementVersionName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.