Makes the jar building finally work
All checks were successful
KnarCraft/Minecraft-Server-Launcher/pipeline/head This commit looks good
All checks were successful
KnarCraft/Minecraft-Server-Launcher/pipeline/head This commit looks good
This commit is contained in:
parent
123a8eddda
commit
51ceac69da
@ -8,17 +8,13 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
public class JarBuilder {
|
public class JarBuilder {
|
||||||
|
|
||||||
private String downloadedBuildToolsVersion = "#124";
|
private String downloadedBuildToolsVersion = "#124";
|
||||||
private String buildDirectory;
|
private final String buildDirectory;
|
||||||
private String jarDirectory;
|
private final String jarDirectory;
|
||||||
|
|
||||||
public JarBuilder(String buildDirectory, String jarDirectory) {
|
public JarBuilder(String buildDirectory, String jarDirectory) {
|
||||||
this.buildDirectory = buildDirectory;
|
this.buildDirectory = buildDirectory;
|
||||||
@ -30,7 +26,7 @@ public class JarBuilder {
|
|||||||
*/
|
*/
|
||||||
public void buildSpigotJar() {
|
public void buildSpigotJar() {
|
||||||
downloadBuildTools();
|
downloadBuildTools();
|
||||||
ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "BuildTools.jar", "--rev",
|
ProcessBuilder processBuilder = new ProcessBuilder("C:\\Program Files\\Java\\jdk-16.0.1\\bin\\java.exe", "-jar", "BuildTools.jar", "--rev",
|
||||||
"latest", "--output-dir", jarDirectory);
|
"latest", "--output-dir", jarDirectory);
|
||||||
executeBuildProcess(processBuilder);
|
executeBuildProcess(processBuilder);
|
||||||
System.out.println("Finished building spigot .jar. Moving it to the correct location");
|
System.out.println("Finished building spigot .jar. Moving it to the correct location");
|
||||||
@ -43,7 +39,7 @@ public class JarBuilder {
|
|||||||
*/
|
*/
|
||||||
public void buildBukkitJar() {
|
public void buildBukkitJar() {
|
||||||
downloadBuildTools();
|
downloadBuildTools();
|
||||||
ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "BuildTools.jar", "--compile",
|
ProcessBuilder processBuilder = new ProcessBuilder("C:\\Program Files\\Java\\jdk-16.0.1\\bin\\java.exe", "-jar", "BuildTools.jar", "--compile",
|
||||||
"craftbukkit", "--rev", "latest", "--output-dir", jarDirectory);
|
"craftbukkit", "--rev", "latest", "--output-dir", jarDirectory);
|
||||||
executeBuildProcess(processBuilder);
|
executeBuildProcess(processBuilder);
|
||||||
System.out.println("Finished building craftbukkit .jar. Moving it to the correct location");
|
System.out.println("Finished building craftbukkit .jar. Moving it to the correct location");
|
||||||
@ -100,31 +96,21 @@ public class JarBuilder {
|
|||||||
Process process = processBuilder.start();
|
Process process = processBuilder.start();
|
||||||
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
|
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
|
||||||
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||||
ScheduledExecutorService builderOutputExecutor = Executors.newSingleThreadScheduledExecutor();
|
|
||||||
builderOutputExecutor.scheduleAtFixedRate(() -> {
|
do {
|
||||||
try {
|
writer.write(CommonFunctions.readBufferedReader(reader));
|
||||||
String readText = CommonFunctions.readBufferedReader(reader);
|
} while (process.isAlive());
|
||||||
if (!readText.equals("")) {
|
|
||||||
writer.write(readText);
|
|
||||||
writer.flush();
|
writer.flush();
|
||||||
}
|
|
||||||
if (!process.isAlive()) {
|
if (process.exitValue() == 0) {
|
||||||
writer.write("Closing process");
|
System.out.println("Jar building process finished successfully.");
|
||||||
writer.flush();
|
} else {
|
||||||
builderOutputExecutor.shutdown();
|
throw new RuntimeException("Jar building process failed with exit code " + process.exitValue() + ".");
|
||||||
writer.close();
|
|
||||||
reader.close();
|
|
||||||
process.destroyForcibly();
|
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}, 1000, 5000, TimeUnit.MILLISECONDS);
|
|
||||||
process.waitFor();
|
|
||||||
System.out.println("Stopped waiting for process");
|
|
||||||
} catch (IOException | InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package net.knarcraft.minecraftserverlauncher.utility;
|
package net.knarcraft.minecraftserverlauncher.utility;
|
||||||
|
|
||||||
import net.knarcraft.minecraftserverlauncher.Main;
|
import net.knarcraft.minecraftserverlauncher.Main;
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.MethodOrderer;
|
import org.junit.jupiter.api.MethodOrderer;
|
||||||
import org.junit.jupiter.api.Order;
|
import org.junit.jupiter.api.Order;
|
||||||
@ -34,13 +33,21 @@ public class JarBuilderTest {
|
|||||||
@Test
|
@Test
|
||||||
@Order(3)
|
@Order(3)
|
||||||
public void buildLatestSpigotJarTest() {
|
public void buildLatestSpigotJarTest() {
|
||||||
|
File spigotFile = new File(jarDirectory + "SpigotLatest.jar");
|
||||||
|
if (spigotFile.exists() && !spigotFile.delete()) {
|
||||||
|
throw new IllegalArgumentException("Unable to remove existing spigot .jar");
|
||||||
|
}
|
||||||
jarBuilder.buildSpigotJar();
|
jarBuilder.buildSpigotJar();
|
||||||
assertTrue(new File(jarDirectory + "SpigotLatest.jar").exists());
|
assertTrue(spigotFile.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Order(4)
|
@Order(4)
|
||||||
public void buildLatestBukkitJarTest() {
|
public void buildLatestBukkitJarTest() {
|
||||||
|
File bukkitFile = new File(jarDirectory + "BukkitLatest.jar");
|
||||||
|
if (bukkitFile.exists() && !bukkitFile.delete()) {
|
||||||
|
throw new IllegalArgumentException("Unable to remove existing bukkit .jar");
|
||||||
|
}
|
||||||
jarBuilder.buildBukkitJar();
|
jarBuilder.buildBukkitJar();
|
||||||
assertTrue(new File(jarDirectory + "BukkitLatest.jar").exists());
|
assertTrue(new File(jarDirectory + "BukkitLatest.jar").exists());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user