Hello. I have implemented autoincrement app version feature in my root build.gradle
I have 3 release tasks (suppose the base version is 1.0.3): release - update version to 2.0.0 and create release apk releaseBeta - update version to 1.1.0 and create release apk releaseNightly - update version to 1.0.4 and create release apk Everything worked fine with gradle 1.12 and 0.12.+ plugin. After switching to new gradle 2.2.1 and 1.0.0 plugin the problem occurred: new apks have old version Please help me to understand what's wrong with it. Here is my code: - VersionUtils is just helper class to operate with version strings import java.util.regex.Matcher import java.util.regex.Pattern buildscript { repositories { jcenter() } dependencies { classpath "com.android.tools.build:gradle:1.0.0" } } task wrapper(type: Wrapper) { gradleVersion = '2.2.1' } ext { deliveryDir = 'delivery' appVersion = new Version(project: this, subprojects: subprojects, versionName: versionName) } subprojects { repositories { jcenter() } } subprojects.each { subproject -> subproject.configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds' } evaluationDependsOn(subproject.path) } subprojects.findAll { project -> project.hasProperty('android') && project. android.hasProperty('applicationVariants') }.each { project -> def deliverToLocal = task("deliverToLocal_${project.name}") { ext.outputDir = "${deliveryDir}/${project.name}" description = "Deliver ${project.name} binaries to ${outputDir} folder" dependsOn project.assembleRelease doLast { deliverBinariesFor project, outputDir } } task("release_${project.name}", dependsOn: deliverToLocal) << { description = "Release ${project.name} application" } } task clearDeliveryDir << { delete deliveryDir delete 'build' } def deliverBinariesFor(def project, def outputDir) { project.android.applicationVariants.all { variant -> copy { variant.outputs.each { output -> from output.outputFile } from "${project.buildDir}/outputs/proguard/release/mapping.txt" from "${project.buildDir}/outputs/lint-results-release-fatal.html" into outputDir } copy { from("${project.buildDir}/outputs") { include 'lint-results*_files/*.css' include 'lint-results*_files/*.png' } into "${outputDir}/lint-result-release-fatal" } } } task deliverToExternal(dependsOn: [tasks.findAll { task -> task.name. startsWith('release_') }]) << {} //---------------release app--------------------------- task increaseMajorVersion << { appVersion.increaseMajor() } task increaseBetaVersion << { appVersion.increaseBeta() } task increaseNightlyVersion << { appVersion.increaseNightly() } task saveVersion << { appVersion.save() } clearDeliveryDir.mustRunAfter increaseMajorVersion clearDeliveryDir.mustRunAfter increaseBetaVersion clearDeliveryDir.mustRunAfter increaseNightlyVersion deliverToExternal.mustRunAfter clearDeliveryDir saveVersion.mustRunAfter deliverToExternal task releaseMajor(dependsOn: [increaseMajorVersion, clearDeliveryDir, deliverToExternal, saveVersion]) { description 'Release a new version of application, create tag and increase version' doLast { println "${appVersion} released" } } task releaseBeta(dependsOn: [increaseBetaVersion, clearDeliveryDir, deliverToExternal, saveVersion]) { description 'Release a new version of application, create tag and increase version' doLast { println "${appVersion} released" } } task releaseNightly(dependsOn: [increaseNightlyVersion, clearDeliveryDir, deliverToExternal, saveVersion]) { description 'Release a new version of application, create tag and increase version' doLast { println "${appVersion} released" } } //-------------------Utils---------------- class Version { def project def subprojects String versionName boolean release String toString() { return VersionUtils.toString(versionName) } Version increaseMajor() { versionName = VersionUtils.increaseMajor( versionName); apply(); this } Version increaseBeta() { versionName = VersionUtils.increaseBeta( versionName); apply(); this } Version increaseNightly() { versionName = VersionUtils.increaseNightly( versionName); apply(); this } void apply() { subprojects.findAll { project -> project.hasProperty('android') && project.android.hasProperty('applicationVariants') }.each { project -> project.android.defaultConfig.versionName = this.toString() project.android.defaultConfig.versionCode = VersionUtils. makeVersionCode(this.toString(), project.android.defaultConfig.minSdkVersion .mApiLevel as int) println "${product.name} versionName = ${project.android.defaultConfig.versionName}, versionCode = ${project.android.defaultConfig.versionCode}" } } void save() { project.ant.propertyfile(file: 'gradle.properties') { entry(key: "versionName", value: versionName) } project.ant.replaceregexp(file: 'gradle.properties', match: /^#[^ ].*\s*/, replace: "", flags: "g") } } -- You received this message because you are subscribed to the Google Groups "adt-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to adt-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.