Skip to content

Commit d70bae5

Browse files
fix: make subsequent builds faster on version change
1 parent c8837d2 commit d70bae5

File tree

8 files changed

+122
-106
lines changed

8 files changed

+122
-106
lines changed

build-data/build.gradle.kts

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,3 @@
11
plugins {
2-
java
3-
id("net.kyori.blossom")
4-
}
5-
6-
java {
7-
toolchain {
8-
languageVersion.set(JavaLanguageVersion.of(21))
9-
}
10-
}
11-
12-
sourceSets {
13-
main {
14-
blossom {
15-
javaSources {
16-
property("version", project.version.toString())
17-
property("description", rootProject.description)
18-
property("url", "https://modrinth.com/plugin/pistonqueue")
19-
}
20-
}
21-
}
2+
id("pq.java-conventions")
223
}

build-data/src/main/java-templates/net/pistonmaster/pistonqueue/data/PluginData.java

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package net.pistonmaster.pistonqueue.data;
2+
3+
import java.io.IOException;
4+
import java.util.Properties;
5+
6+
public class BuildData {
7+
public static final String VERSION;
8+
public static final String DESCRIPTION;
9+
public static final String URL;
10+
11+
static {
12+
Properties properties = new Properties();
13+
try (var inputStream = BuildData.class.getClassLoader().getResourceAsStream("pistonqueue-build-data.properties")) {
14+
if (inputStream == null) {
15+
throw new IllegalStateException("Build data properties file not found");
16+
}
17+
18+
properties.load(inputStream);
19+
} catch (IOException e) {
20+
throw new RuntimeException("Failed to load build data properties", e);
21+
}
22+
23+
VERSION = properties.getProperty("version");
24+
DESCRIPTION = properties.getProperty("description");
25+
URL = properties.getProperty("url");
26+
}
27+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version=${version}
2+
description=${description}
3+
url=${url}
Lines changed: 79 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,103 @@
11
plugins {
2-
`java-library`
3-
`maven-publish`
2+
`java-library`
3+
`maven-publish`
44
}
55

66
java {
7-
toolchain {
8-
languageVersion.set(JavaLanguageVersion.of(21))
9-
}
7+
toolchain {
8+
languageVersion.set(JavaLanguageVersion.of(21))
9+
}
1010
}
1111

1212
dependencies {
13-
implementation("org.jetbrains:annotations:26.0.2")
13+
implementation("org.jetbrains:annotations:26.0.2")
1414

15-
compileOnly("org.projectlombok:lombok:1.18.38")
16-
annotationProcessor("org.projectlombok:lombok:1.18.38")
15+
compileOnly("org.projectlombok:lombok:1.18.38")
16+
annotationProcessor("org.projectlombok:lombok:1.18.38")
1717

18-
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
19-
testImplementation("org.junit.jupiter:junit-jupiter:5.13.3")
20-
testImplementation("org.mockito:mockito-core:5.18.0")
21-
testImplementation("org.mockito:mockito-junit-jupiter:5.18.0")
18+
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
19+
testImplementation("org.junit.jupiter:junit-jupiter:5.13.3")
20+
testImplementation("org.mockito:mockito-core:5.18.0")
21+
testImplementation("org.mockito:mockito-junit-jupiter:5.18.0")
2222
}
2323

2424
tasks {
25-
processResources {
26-
expand(
27-
"version" to version,
28-
"description" to description,
29-
"url" to "https://modrinth.com/plugin/pistonqueue"
30-
)
31-
}
32-
test {
33-
reports.junitXml.required = true
34-
reports.html.required = true
35-
useJUnitPlatform()
36-
maxParallelForks = Runtime.getRuntime().availableProcessors().div(2).coerceAtLeast(1)
25+
processResources {
26+
filesMatching(
27+
listOf(
28+
"plugin.yml",
29+
"bungee.yml",
30+
"velocity-plugin.json",
31+
"pistonqueue-build-data.properties"
32+
)
33+
) {
34+
expand(
35+
"version" to project.version,
36+
"description" to project.description,
37+
"url" to "https://modrinth.com/plugin/pistonqueue",
38+
)
3739
}
40+
}
41+
test {
42+
reports.junitXml.required = true
43+
reports.html.required = true
44+
useJUnitPlatform()
45+
maxParallelForks = Runtime.getRuntime().availableProcessors().div(2).coerceAtLeast(1)
46+
}
3847
}
3948

4049
tasks.withType<JavaCompile> {
41-
options.encoding = "UTF-8"
42-
options.compilerArgs.add("-Xlint:all,-serial,-processing")
50+
options.encoding = "UTF-8"
51+
options.compilerArgs.add("-Xlint:all,-serial,-processing")
4352
}
4453

4554
val repoName = if (version.toString().endsWith("SNAPSHOT")) "maven-snapshots" else "maven-releases"
4655
publishing {
47-
repositories {
48-
maven("https://repo.codemc.org/repository/${repoName}/") {
49-
credentials.username = System.getenv("CODEMC_USERNAME")
50-
credentials.password = System.getenv("CODEMC_PASSWORD")
51-
name = "codemc"
52-
}
56+
repositories {
57+
maven("https://repo.codemc.org/repository/${repoName}/") {
58+
credentials.username = System.getenv("CODEMC_USERNAME")
59+
credentials.password = System.getenv("CODEMC_PASSWORD")
60+
name = "codemc"
5361
}
54-
publications {
55-
register<MavenPublication>("mavenJava") {
56-
from(components["java"])
57-
pom {
58-
name = "PistonQueue"
59-
description = rootProject.description
60-
url = "https://github.com/AlexProgrammerDE/PistonQueue"
61-
organization {
62-
name = "AlexProgrammerDE"
63-
url = "https://pistonmaster.net"
64-
}
65-
developers {
66-
developer {
67-
id = "AlexProgrammerDE"
68-
timezone = "Europe/Berlin"
69-
url = "https://pistonmaster.net"
70-
}
71-
}
72-
licenses {
73-
license {
74-
name = "GNU General Public License v3.0"
75-
url = "https://www.gnu.org/licenses/gpl-3.0.html"
76-
}
77-
}
78-
scm {
79-
connection = "scm:git:https://github.com/AlexProgrammerDE/PistonQueue.git"
80-
developerConnection = "scm:git:ssh://[email protected]/AlexProgrammerDE/PistonQueue.git"
81-
url = "https://github.com/AlexProgrammerDE/PistonQueue"
82-
}
83-
ciManagement {
84-
system = "GitHub Actions"
85-
url = "https://github.com/AlexProgrammerDE/PistonQueue/actions"
86-
}
87-
issueManagement {
88-
system = "GitHub"
89-
url = "https://github.com/AlexProgrammerDE/PistonQueue/issues"
90-
}
91-
}
62+
}
63+
publications {
64+
register<MavenPublication>("mavenJava") {
65+
from(components["java"])
66+
pom {
67+
name = "PistonQueue"
68+
description = rootProject.description
69+
url = "https://github.com/AlexProgrammerDE/PistonQueue"
70+
organization {
71+
name = "AlexProgrammerDE"
72+
url = "https://pistonmaster.net"
73+
}
74+
developers {
75+
developer {
76+
id = "AlexProgrammerDE"
77+
timezone = "Europe/Berlin"
78+
url = "https://pistonmaster.net"
79+
}
80+
}
81+
licenses {
82+
license {
83+
name = "GNU General Public License v3.0"
84+
url = "https://www.gnu.org/licenses/gpl-3.0.html"
85+
}
86+
}
87+
scm {
88+
connection = "scm:git:https://github.com/AlexProgrammerDE/PistonQueue.git"
89+
developerConnection = "scm:git:ssh://[email protected]/AlexProgrammerDE/PistonQueue.git"
90+
url = "https://github.com/AlexProgrammerDE/PistonQueue"
91+
}
92+
ciManagement {
93+
system = "GitHub Actions"
94+
url = "https://github.com/AlexProgrammerDE/PistonQueue/actions"
95+
}
96+
issueManagement {
97+
system = "GitHub"
98+
url = "https://github.com/AlexProgrammerDE/PistonQueue/issues"
9299
}
100+
}
93101
}
102+
}
94103
}

velocity/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,4 @@ dependencies {
1010
implementation("org.bstats:bstats-velocity:3.1.0")
1111

1212
compileOnly("com.velocitypowered:velocity-api:3.1.1")
13-
annotationProcessor("com.velocitypowered:velocity-api:3.1.1")
1413
}

velocity/src/main/java/net/pistonmaster/pistonqueue/velocity/PistonQueueVelocity.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.google.inject.Inject;
2323
import com.velocitypowered.api.event.Subscribe;
2424
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
25-
import com.velocitypowered.api.plugin.Plugin;
2625
import com.velocitypowered.api.plugin.PluginContainer;
2726
import com.velocitypowered.api.plugin.annotation.DataDirectory;
2827
import com.velocitypowered.api.proxy.Player;
@@ -31,7 +30,6 @@
3130
import com.velocitypowered.api.proxy.server.RegisteredServer;
3231
import lombok.Getter;
3332
import net.kyori.adventure.text.Component;
34-
import net.pistonmaster.pistonqueue.data.PluginData;
3533
import net.pistonmaster.pistonqueue.shared.chat.MessageType;
3634
import net.pistonmaster.pistonqueue.shared.hooks.PistonMOTDPlaceholder;
3735
import net.pistonmaster.pistonqueue.shared.plugin.PistonQueuePlugin;
@@ -56,8 +54,6 @@
5654
import java.util.concurrent.TimeUnit;
5755
import java.util.stream.Collectors;
5856

59-
@Plugin(id = "pistonqueue", name = PluginData.NAME, version = PluginData.VERSION,
60-
url = PluginData.URL, description = PluginData.DESCRIPTION, authors = {"AlexProgrammerDE"})
6157
public final class PistonQueueVelocity implements PistonQueuePlugin {
6258
@Getter
6359
private final Path dataDirectory;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"id": "pistonqueue",
3+
"name": "PistonQueue",
4+
"version": "${version}",
5+
"description": "${description}",
6+
"url": "${url}",
7+
"authors": [
8+
"AlexProgrammerDE"
9+
],
10+
"dependencies": [],
11+
"main": "net.pistonmaster.pistonqueue.velocity.PistonQueueVelocity"
12+
}

0 commit comments

Comments
 (0)