Skip to content

Commit 96cc449

Browse files
Rewrite version token replacing into standalone task (#494)
1 parent 292b28d commit 96cc449

File tree

4 files changed

+37
-15
lines changed

4 files changed

+37
-15
lines changed

build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ buildscript {
1717

1818
plugins {
1919
id "org.jetbrains.gradle.plugin.idea-ext" version "1.3"
20-
id "com.palantir.git-version" version "4.2.0"
20+
//id "com.palantir.git-version" version "4.2.0"
2121
}
22+
apply plugin: 'com.palantir.git-version' // Declared in buildSrc/build.gradle
2223

2324
import com.cleanroommc.gradle.helpers.ProjectConstants
2425
import com.cleanroommc.gradle.helpers.tasks.Util

buildSrc/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
repositories {
2+
gradlePluginPortal()
23
mavenCentral()
34
}
45

56
dependencies {
67
implementation 'org.ow2.asm:asm:9.9'
78
implementation 'org.ow2.asm:asm-tree:9.9'
9+
implementation 'com.palantir.gradle.gitversion:gradle-git-version:4.2.0'
810
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.cleanroommc.gradle.helpers.tasks
2+
3+
import com.palantir.gradle.gitversion.VersionDetails;
4+
import org.gradle.api.DefaultTask;
5+
import org.gradle.api.tasks.Input
6+
import org.gradle.api.tasks.InputFile;
7+
import org.gradle.api.tasks.OutputFile;
8+
import org.gradle.api.tasks.TaskAction;
9+
10+
11+
abstract class GenVersionTask extends DefaultTask {
12+
@Input
13+
final String lastTag = ((Closure<VersionDetails>)getProject().rootProject.getExtensions().getExtraProperties().get('versionDetails')).call().lastTag
14+
@InputFile
15+
final File template = new File("${getProject().rootProject.projectDir}/templates/CleanroomVersion.java")
16+
@OutputFile
17+
final File versionClass = new File("${getProject().rootProject.projectDir}/src/main/java/com/cleanroommc/common/CleanroomVersion.java")
18+
@TaskAction
19+
void action() {
20+
versionClass.withWriter { def writer ->
21+
template.eachLine { def line ->
22+
def newLine = line.replace("%VERSION%", lastTag)
23+
.replace("%BUILD_VERSION%", getProject().rootProject.version.toString())
24+
writer.write(newLine + "\n")
25+
}
26+
}
27+
}
28+
}

projects/cleanroom/build.gradle

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import com.cleanroommc.gradle.helpers.ProjectConstants
2+
import com.cleanroommc.gradle.helpers.tasks.GenVersionTask
23
import com.cleanroommc.gradle.helpers.tasks.Util
34
import groovy.json.JsonBuilder
45
import net.minecraftforge.gradle.common.tasks.ApplyBinPatches
@@ -20,8 +21,7 @@ import java.nio.file.Files
2021
import java.util.zip.ZipFile
2122

2223
def props = project.properties
23-
def details = versionDetails()
24-
def spec_version = details.lastTag
24+
def spec_version = versionDetails().lastTag
2525

2626
evaluationDependsOn(':minecraft')
2727
apply plugin: 'java-library'
@@ -32,19 +32,10 @@ apply plugin: 'top.outlands.gradle.patcher'
3232
group = 'com.cleanroommc'
3333
version = rootProject.version
3434

35+
tasks.register("genVersion", GenVersionTask.class)
36+
3537
compileJava {
36-
doFirst {
37-
def target = new File("${rootProject.projectDir}/src/main/java/com/cleanroommc/common/CleanroomVersion.java")
38-
def template = new File("${rootProject.projectDir}/templates/CleanroomVersion.java")
39-
40-
target.withWriter { def writer ->
41-
template.eachLine { def line ->
42-
def newLine = line.replace("%VERSION%", versionDetails().lastTag)
43-
.replace("%BUILD_VERSION%", rootProject.version.toString())
44-
writer.write(newLine + "\n")
45-
}
46-
}
47-
}
38+
dependsOn tasks.genVersion
4839
}
4940

5041
sourceSets {

0 commit comments

Comments
 (0)