diff --git a/pom.xml b/pom.xml index 545a337..a823386 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ org.strassburger mcrun-maven-plugin - 0.0.15 + 0.0.16 maven-plugin MCRun Maven Plugin diff --git a/src/main/java/org/strassburger/mcrun/RunServerMojo.java b/src/main/java/org/strassburger/mcrun/RunServerMojo.java index d923743..fbfb8b8 100644 --- a/src/main/java/org/strassburger/mcrun/RunServerMojo.java +++ b/src/main/java/org/strassburger/mcrun/RunServerMojo.java @@ -17,12 +17,20 @@ import java.util.List; @Mojo(name = "run") public class RunServerMojo extends AbstractMojo { /** - * Heap size passed to both {@code -Xmx} and {@code -Xms}. - * Accepts standard JVM memory notation, e.g. 2G, 512M. + * Minimum heap size passed to {@code -Xms}. + * Accepts standard JVM memory notation, e.g. 512M, 1G. + * Defaults to 512M. + */ + @Parameter(defaultValue = "512M") + private String minMemory; + + /** + * Maximum heap size passed to {@code -Xmx}. + * Accepts standard JVM memory notation, e.g. 2G, 4G. * Defaults to 2G. */ @Parameter(defaultValue = "2G") - private String memory; + private String maxMemory; /** * Additional JVM arguments to pass to the server process. @@ -84,7 +92,7 @@ public class RunServerMojo extends AbstractMojo { @Override public void execute() throws MojoExecutionException, MojoFailureException { Step step = new ServerRunStep(getLog(), - new ServerRunStepConfig(memory, jvmArgs, remoteDebug, debugPort, port, serverDirectory, serverJarName) + new ServerRunStepConfig(minMemory, maxMemory, jvmArgs, remoteDebug, debugPort, port, serverDirectory, serverJarName) ); try { step.run(); diff --git a/src/main/java/org/strassburger/mcrun/StartServerMojo.java b/src/main/java/org/strassburger/mcrun/StartServerMojo.java index 19d965e..876616d 100644 --- a/src/main/java/org/strassburger/mcrun/StartServerMojo.java +++ b/src/main/java/org/strassburger/mcrun/StartServerMojo.java @@ -56,12 +56,20 @@ public class StartServerMojo extends AbstractMojo { private String mcVersion; /** - * Heap size passed to both {@code -Xmx} and {@code -Xms}. - * Accepts standard JVM memory notation, e.g. 2G, 512M. + * Minimum heap size passed to {@code -Xms}. + * Accepts standard JVM memory notation, e.g. 512M, 1G. + * Defaults to 512M. + */ + @Parameter(defaultValue = "512M") + private String minMemory; + + /** + * Maximum heap size passed to {@code -Xmx}. + * Accepts standard JVM memory notation, e.g. 2G, 4G. * Defaults to 2G. */ @Parameter(defaultValue = "2G") - private String memory; + private String maxMemory; /** * When {@code true}, automatically creates {@code eula.txt} with {@code eula=true} @@ -133,7 +141,7 @@ public class StartServerMojo extends AbstractMojo { new ServerInstallConfig(serverDirectory, pluginJar, serverJarName, serverSoftware, mcVersion, acceptEula) )); steps.add(new ServerRunStep(getLog(), - new ServerRunStepConfig(memory, jvmArgs, remoteDebug, debugPort, port, serverDirectory, serverJarName) + new ServerRunStepConfig(minMemory, maxMemory, jvmArgs, remoteDebug, debugPort, port, serverDirectory, serverJarName) )); return steps; } diff --git a/src/main/java/org/strassburger/mcrun/config/ServerRunStepConfig.java b/src/main/java/org/strassburger/mcrun/config/ServerRunStepConfig.java index 0ae0642..a8d4d4c 100644 --- a/src/main/java/org/strassburger/mcrun/config/ServerRunStepConfig.java +++ b/src/main/java/org/strassburger/mcrun/config/ServerRunStepConfig.java @@ -3,7 +3,8 @@ package org.strassburger.mcrun.config; import java.io.File; import java.util.List; -public record ServerRunStepConfig(String memory, +public record ServerRunStepConfig(String minMemory, + String maxMemory, List jvmArgs, boolean remoteDebug, int debugPort, diff --git a/src/main/java/org/strassburger/mcrun/steps/ServerRunStep.java b/src/main/java/org/strassburger/mcrun/steps/ServerRunStep.java index f8f96e0..9b6c1ca 100644 --- a/src/main/java/org/strassburger/mcrun/steps/ServerRunStep.java +++ b/src/main/java/org/strassburger/mcrun/steps/ServerRunStep.java @@ -20,8 +20,8 @@ public class ServerRunStep extends Step { private List buildCommand() { List cmd = new ArrayList<>(); cmd.add("java"); - cmd.add("-Xmx" + getConfig().memory()); - cmd.add("-Xms" + getConfig().memory()); + cmd.add("-Xmx" + getConfig().maxMemory()); + cmd.add("-Xms" + getConfig().minMemory()); if (getConfig().remoteDebug() && getConfig().debugPort() > 0) { cmd.add(String.format("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:%d", getConfig().debugPort())); }