From 1e032ad730f6f9d0ced231690d66c3217c364bb4 Mon Sep 17 00:00:00 2001 From: iamdanfox Date: Thu, 19 May 2016 12:50:34 -0700 Subject: [PATCH] writeVersion task only writes file when executed (#10) Previously, even running `./gradlew tasks` would cause the version.properties file to be written. This task will now only write the file when executed. --- write-version.gradle | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/write-version.gradle b/write-version.gradle index fc8a7e2..0bfb7ce 100644 --- a/write-version.gradle +++ b/write-version.gradle @@ -1,12 +1,24 @@ // depends on https://github.com/palantir/gradle-git-version -task writeVersion { - description "Writes a version.properties file with the current git version to /src/main/resources/." - def contents = "productVersion: " + project.version - def resourcesDir = file("$projectDir/src/main/resources") - if(!resourcesDir.exists()) { - resourcesDir.mkdir() +task writeVersion(type: WriteVersionTask) { + versionFile = "$projectDir/src/main/resources/version.properties" +} + +class WriteVersionTask extends DefaultTask { + def versionFile + + File getVersionFile() { + project.file(versionFile) + } + + String getDescription() { + "Writes the current git version to a specified file (e.g. /src/main/resources/version.properties)." + } + + @TaskAction + def writeToFile() { + getVersionFile().getParentFile().mkdirs() + getVersionFile().text = "productVersion: " + project.version } - def versionFile = new File("$resourcesDir/version.properties") - versionFile.text = contents } +