How to set project.version by passing version property on gradle command line?

You are not able to override existing project properties from command line, take a look here. So try to rename a version variable to something differing from version and set it with -P flag before command, like:

gradle -PprojVersion=10.2.10 build 

And then in your build.gradle

if (project.hasProperty('projVersion')) {
  project.version = project.projVersion
} else {
  project.version = '10.0.0'
}

Or as you did with ?: operator


Set the property only in the gradle.properties file (i.e. remove it from build.gradle). Also make sure the options come before the command (as mentioned above).

gradle.properties contents:

version=1.0.12

Version can then be overridden on the command line with:

gradle -Pversion=1.0.13 publish

If you move version entry to gradle.properties file you can also:

gradle clean build -Dorg.gradle.project.version=1.1

If you need a default version other than 'unspecified':

version = "${version != 'unspecified' ? version : 'your-default-version'}"

Pass version via command line:

gradle build -P version=1.0