使用gradle更新Android应用程序版本(存储在build.gradle中)
在gradle中执行某些任务时,是否可以更新Android或库版本使用gradle更新Android应用程序版本(存储在build.gradle中),android,android-studio,gradle,Android,Android Studio,Gradle,在gradle中执行某些任务时,是否可以更新Android或库版本versionCode和versionName?versionCode/Name放在我的android/build.gradle中 我在寻找一个完整的gradle脚本,而不是shell脚本 它不同于,因为versionCode和versionName存储在build.gradle中,而不是存储在您的build.gradle的清单中。gradle如果要更新,我已更改了一个脚本来编辑当前的build.gradle并递增versionC
versionCode
和versionName
?versionCode/Name放在我的android/build.gradle中
我在寻找一个完整的gradle脚本,而不是shell脚本
它不同于,因为versionCode和versionName存储在build.gradle中,而不是存储在您的build.gradle的清单中。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)
}
@EdGeorge的可能重复它与Android Gradle中自动增加版本代码的方式不同,因为版本代码和版本名称存储在build.Gradle中,而不是在manifests中。上面的文章展示了这两种方法的技术,如果这与任何一种解决方案不同,并且完成了相同的任务,它应该作为这个问题的答案而不是它自己的答案发布question@EdGeorge通过编辑
AndroidManifest.xml
指定问题。在搜索此解决方案时,我没有找到任何答案,并且在搜索过程中没有输出“posibble replicate”。
bintrayUpload.dependsOn incrementVersionCode
bintrayUpload.dependsOn incrementVersionName