Simple plugin to modify gradle versions directly in build files or properties. No metadata file, no specific flow constraints.
You can add this plugin to your top-level or modules build script.
In a groovy 'build.gradle' build file :
plugins {
id "com.github.ldenisey.setversions" version "$version"
}
In a kotlin 'build.gradle.kts' build file :
plugins {
id("com.github.ldenisey.setversions") version "$version"
}
This task displays the current version of your project, optionally updated by suffix addition/removal and/or incrementation.
The new version is not applied, to do so use the task setVersions. As both tasks use the same logic internally you can use getVersions task for dry run execution.
When modifying current version, it is expected to have :
- an optional prefix matching [A-Za-z0-9/_-]* regex
- a base version made of at least 2 numbers separated by points ((\d+.)+\d+ regex)
- an optional suffix matching [A-Za-z0-9/_-]* regex
Quick examples :
Project version | Command | Result |
---|---|---|
1.2.3-SNAPSHOT | ./gradlew getVersions | 1.2.3-SNAPSHOT |
1.2.3-SNAPSHOT | ./gradlew getVersions --suffix=false | 1.2.3 |
1.2.3-SNAPSHOT | ./gradlew getVersions --new-version=2.0.0 | 2.0.0 |
1.2.3-SNAPSHOT | ./gradlew getVersions --suffix=rc | 1.2.3-rc |
1.2.3-SNAPSHOT | ./gradlew getVersions --increment=1 --suffix=false | 2.0.0 |
1.2.3-SNAPSHOT | ./gradlew getVersions --increment=technical | 1.2.4-SNAPSHOT |
1.2.3-SNAPSHOT | ./gradlew getVersions --increment=minor --suffix=false | 1.3.0 |
1.2.3-SNAPSHOT | ./gradlew getVersions --prefix=id/12 | id/12-1.2.3-SNAPSHOT |
v1.2 | ./gradlew getVersions --increment=major | v2.0 |
v1.2 | ./gradlew getVersions --increment=2 --suffix=dev | v1.3-dev |
feature/42-1.2.3.4-alpha | ./gradlew getVersions --increment=4 | feature/42-1.2.3.5-alpha |
feature/42-1.2.3.4-alpha | ./gradlew getVersions --increment=-1 | feature/42-1.2.3.5-alpha |
feature/42-1.2.3.4-alpha | ./gradlew getVersions --prefix=false | 42-1.2.3.4-alpha |
Default suffix value used by --suffix=true
option. 'SNAPSHOT' by default, you can set it in your 'build.gradle',
for example :
versions {
defaultSuffix = 'dev'
}
Boolean to disable version update on a specific module.
versions {
skipSet = true
}
String option to define a new version from scratch, regardless of existing version value.
For example ./gradlew getVersions --new-version=1.2.3-SNAPSHOT
returns 1.2.3-SNAPSHOT
.
String option to add or replace a suffix. Can be set to any alphanumerical string, except true
and false
.
The suffix is separated from base version with -
.
--suffix=true
will append the project's default suffix. --suffix=false
will trim it.
Use this option to increment base version digits. Specify the position of the version digit to increment, all digits on the right of the incremented digit will be set to 0.
Position can be set with :
- a positive integer, 1 being first on the left
- a negative integer, -1 being last digit on the right.
- an alias :
major
for first digitminor
for second digittechnical
for third digit
For examples, if current version is 1.2.3-SNAPSHOT
, executing ./gradlew getVersions --increment=1
will return
2.0.0-SNAPSHOT
. It is equivalent to ./gradlew getVersions --increment=-3
and ./gradlew getVersions --increment=major
This task updates the project/modules versions.
Its options to generate a new version are shared with getVersions task task, refer to it for options.
There are several ways to define versions in gradle. As of now, this task can update versions defined in project/modules build files, gradle.properties and in build scripts defined in buildSrc (see gradle sample).