diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java index ae8a7591..4f09209e 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java @@ -34,6 +34,8 @@ import java.util.Random; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.maven.shared.utils.StringUtils; import org.mvndaemon.mvnd.common.DaemonCompatibilitySpec; import org.mvndaemon.mvnd.common.DaemonCompatibilitySpec.Result; import org.mvndaemon.mvnd.common.DaemonConnection; @@ -342,6 +344,14 @@ public class DaemonConnector { } } } + // .mvn/jvm.config + if (Files.isRegularFile(parameters.jvmConfigPath())) { + Files.lines(parameters.jvmConfigPath()) + .flatMap(l -> Stream.of(l.split(" "))) + .map(String::trim) + .filter(StringUtils::isNotEmpty) + .forEach(args::add); + } // memory String minHeapSize = parameters.minHeapSize(); if (minHeapSize != null) { diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java index c09c0423..3f2707de 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java @@ -166,6 +166,10 @@ public class DaemonParameters { .asPath(); } + public Path jvmConfigPath() { + return multiModuleProjectDirectory().resolve(".mvn/jvm.config"); + } + public Path localPropertiesPath() { return multiModuleProjectDirectory().resolve(".mvn/mvnd.properties"); }