diff --git a/apache-maven/src/assembly/shared/init b/apache-maven/src/assembly/shared/init index d5bd529b601c..934e039e887c 100755 --- a/apache-maven/src/assembly/shared/init +++ b/apache-maven/src/assembly/shared/init @@ -84,3 +84,4 @@ concat_lines() { MAVEN_PROJECTBASEDIR="`find_maven_basedir "$@"`" MAVEN_OPTS="$MAVEN_OPTS `concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config"`" +MAVEN_ARGS="$MAVEN_ARGS `concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/maven.config"`" diff --git a/apache-maven/src/assembly/shared/init.cmd b/apache-maven/src/assembly/shared/init.cmd index e41e093b22f4..7742d692126c 100755 --- a/apache-maven/src/assembly/shared/init.cmd +++ b/apache-maven/src/assembly/shared/init.cmd @@ -92,3 +92,10 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s :endReadJvmConfig +if not exist "%MAVEN_PROJECTBASEDIR%\.mvn\maven.config" goto endReadMavenConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\maven.config") do set MAVEN_CONFIG_MAVEN_PROPS=!MAVEN_CONFIG_MAVEN_PROPS! %%a +@endlocal & set MAVEN_ARGS=%MAVEN_ARGS% %MAVEN_CONFIG_MAVEN_PROPS% + +:endReadMavenConfig diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index 509b02edeee8..c27e1fe776c9 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -27,8 +27,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; -import java.nio.charset.Charset; -import java.nio.file.Files; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -44,7 +42,6 @@ import com.google.inject.AbstractModule; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.Option; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.UnrecognizedOptionException; import org.apache.commons.lang3.math.NumberUtils; @@ -147,8 +144,6 @@ public class MavenCli { private static final String EXTENSIONS_FILENAME = ".mvn/extensions.xml"; - private static final String MVN_MAVEN_CONFIG = ".mvn/maven.config"; - public static final String STYLE_COLOR_PROPERTY = "style.color"; private ClassWorld classWorld; @@ -339,36 +334,8 @@ void cli(CliRequest cliRequest) throws Exception { cliManager = new CLIManager(); - List args = new ArrayList<>(); - CommandLine mavenConfig = null; - try { - File configFile = new File(cliRequest.multiModuleProjectDirectory, MVN_MAVEN_CONFIG); - - if (configFile.isFile()) { - for (String arg : Files.readAllLines(configFile.toPath(), Charset.defaultCharset())) { - if (!arg.isEmpty()) { - args.add(arg); - } - } - - mavenConfig = cliManager.parse(args.toArray(new String[0])); - List unrecognized = mavenConfig.getArgList(); - if (!unrecognized.isEmpty()) { - throw new ParseException("Unrecognized maven.config entries: " + unrecognized); - } - } - } catch (ParseException e) { - System.err.println("Unable to parse maven.config: " + e.getMessage()); - cliManager.displayHelp(System.out); - throw e; - } - try { - if (mavenConfig == null) { - cliRequest.commandLine = cliManager.parse(cliRequest.args); - } else { - cliRequest.commandLine = cliMerge(cliManager.parse(cliRequest.args), mavenConfig); - } + cliRequest.commandLine = cliManager.parse(cliRequest.args); } catch (ParseException e) { System.err.println("Unable to parse command line options: " + e.getMessage()); cliManager.displayHelp(System.out); @@ -392,36 +359,6 @@ private void informativeCommands(CliRequest cliRequest) throws ExitException { } } - private CommandLine cliMerge(CommandLine mavenArgs, CommandLine mavenConfig) { - CommandLine.Builder commandLineBuilder = new CommandLine.Builder(); - - // the args are easy, cli first then config file - for (String arg : mavenArgs.getArgs()) { - commandLineBuilder.addArg(arg); - } - for (String arg : mavenConfig.getArgs()) { - commandLineBuilder.addArg(arg); - } - - // now add all options, except for -D with cli first then config file - List