diff --git a/build.gradle b/build.gradle index 70a097efe..669ddcfa0 100644 --- a/build.gradle +++ b/build.gradle @@ -17,8 +17,9 @@ buildscript { plugins { id "org.jetbrains.gradle.plugin.idea-ext" version "1.3" - id "com.palantir.git-version" version "4.2.0" + //id "com.palantir.git-version" version "4.2.0" } +apply plugin: 'com.palantir.git-version' // Declared in buildSrc/build.gradle import com.cleanroommc.gradle.helpers.ProjectConstants import com.cleanroommc.gradle.helpers.tasks.Util diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index cd2d67e08..8920947e2 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -1,8 +1,10 @@ repositories { + gradlePluginPortal() mavenCentral() } dependencies { implementation 'org.ow2.asm:asm:9.9' implementation 'org.ow2.asm:asm-tree:9.9' + implementation 'com.palantir.gradle.gitversion:gradle-git-version:4.2.0' } diff --git a/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy b/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy new file mode 100644 index 000000000..564574a17 --- /dev/null +++ b/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/GenVersionTask.groovy @@ -0,0 +1,28 @@ +package com.cleanroommc.gradle.helpers.tasks + +import com.palantir.gradle.gitversion.VersionDetails; +import org.gradle.api.DefaultTask; +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFile; +import org.gradle.api.tasks.OutputFile; +import org.gradle.api.tasks.TaskAction; + + +abstract class GenVersionTask extends DefaultTask { + @Input + final String lastTag = ((Closure)getProject().rootProject.getExtensions().getExtraProperties().get('versionDetails')).call().lastTag + @InputFile + final File template = new File("${getProject().rootProject.projectDir}/templates/CleanroomVersion.java") + @OutputFile + final File versionClass = new File("${getProject().rootProject.projectDir}/src/main/java/com/cleanroommc/common/CleanroomVersion.java") + @TaskAction + void action() { + versionClass.withWriter { def writer -> + template.eachLine { def line -> + def newLine = line.replace("%VERSION%", lastTag) + .replace("%BUILD_VERSION%", getProject().rootProject.version.toString()) + writer.write(newLine + "\n") + } + } + } +} diff --git a/projects/cleanroom/build.gradle b/projects/cleanroom/build.gradle index fc423368c..8d52b520b 100644 --- a/projects/cleanroom/build.gradle +++ b/projects/cleanroom/build.gradle @@ -1,4 +1,5 @@ import com.cleanroommc.gradle.helpers.ProjectConstants +import com.cleanroommc.gradle.helpers.tasks.GenVersionTask import com.cleanroommc.gradle.helpers.tasks.Util import groovy.json.JsonBuilder import net.minecraftforge.gradle.common.tasks.ApplyBinPatches @@ -20,8 +21,7 @@ import java.nio.file.Files import java.util.zip.ZipFile def props = project.properties -def details = versionDetails() -def spec_version = details.lastTag +def spec_version = versionDetails().lastTag evaluationDependsOn(':minecraft') apply plugin: 'java-library' @@ -32,19 +32,10 @@ apply plugin: 'top.outlands.gradle.patcher' group = 'com.cleanroommc' version = rootProject.version +tasks.register("genVersion", GenVersionTask.class) + compileJava { - doFirst { - def target = new File("${rootProject.projectDir}/src/main/java/com/cleanroommc/common/CleanroomVersion.java") - def template = new File("${rootProject.projectDir}/templates/CleanroomVersion.java") - - target.withWriter { def writer -> - template.eachLine { def line -> - def newLine = line.replace("%VERSION%", versionDetails().lastTag) - .replace("%BUILD_VERSION%", rootProject.version.toString()) - writer.write(newLine + "\n") - } - } - } + dependsOn tasks.genVersion } sourceSets {