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" }