buildscript { repositories { mavenLocal() mavenCentral() } dependencies { classpath 'net.thauvin.erik.gradle:semver:1.0.5-beta' } } apply plugin: 'java' apply plugin: 'application' apply plugin: 'net.thauvin.erik.gradle.semver' mainClassName = 'App' //version = 1.0 def f = new File("version.properties") def semverProcessor = 'net.thauvin.erik:semver:1.2.0' dependencies { annotationProcessor semverProcessor compileOnly semverProcessor } repositories { mavenLocal() jcenter() } application { println project.version project.afterEvaluate { println project.version } } incrementBuildMeta { doFirst { //buildMeta = sprintf("%03d", (buildMeta as Integer) + 1) buildMeta = new Date().format("yyyyMMddHHmmss") } } run { doFirst { println "Version: $semver.major$semver.separator$semver.minor$semver.separator$semver.patch$semver.preReleasePrefix$semver.preRelease$semver.buildMetaPrefix$semver.buildMeta" args = [f.name] } } task echoVersion(type:Exec) { commandLine('echo', "${-> version}") } semver { properties = "${f.name}" keysPrefix = f.name.substring(0, f.name.indexOf(".") + 1) buildMetaKey = "meta" semverKey = "fullversion" }