You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/12/26 20:20:07 UTC
[maven] branch maven-3.9.x updated: [MNG-7131] maven.config doesn't handle arguments with spaces in them
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch maven-3.9.x
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/maven-3.9.x by this push:
new 331c5c343 [MNG-7131] maven.config doesn't handle arguments with spaces in them
331c5c343 is described below
commit 331c5c3435cdfa8dc3f35a7b38503bdac2654206
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Thu Jul 15 18:55:16 2021 +0200
[MNG-7131] maven.config doesn't handle arguments with spaces in them
Since we don't have a clear specification of the file format change
reading of the file to a one-arg-per-line basis just like Java's
@argfiles or Python's argparse would handle it.
Consider that jvm.config suffers from the same issue its parsing is not
portable between Bourne shell and Windows Command prompt.
---
.../src/main/java/org/apache/maven/cli/MavenCli.java | 3 ++-
.../test/java/org/apache/maven/cli/MavenCliTest.java | 19 +++++++++++++++----
.../src/test/projects/config/.mvn/maven.config | 5 +++--
.../projects/mavenConfigProperties/.mvn/maven.config | 4 +++-
4 files changed, 23 insertions(+), 8 deletions(-)
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 75361c5dc..1a38e6409 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
@@ -32,6 +32,7 @@ import java.io.FileOutputStream;
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;
@@ -331,7 +332,7 @@ public class MavenCli {
File configFile = new File(cliRequest.multiModuleProjectDirectory, MVN_MAVEN_CONFIG);
if (configFile.isFile()) {
- for (String arg : new String(Files.readAllBytes(configFile.toPath())).split("\\s+")) {
+ for (String arg : Files.readAllLines(configFile.toPath(), Charset.defaultCharset())) {
if (!arg.isEmpty()) {
args.add(arg);
}
diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
index 8e00e709b..9fb867a5b 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
@@ -126,8 +126,10 @@ public class MavenCliTest {
/**
* Read .mvn/maven.config with the following definitions:
* <pre>
- * -T 3
+ * -T
+ * 3
* -Drevision=1.3.0
+ * "-Dlabel=Apache Maven"
* </pre>
* and check if the {@code -T 3} option can be overwritten via command line
* argument.
@@ -151,8 +153,10 @@ public class MavenCliTest {
/**
* Read .mvn/maven.config with the following definitions:
* <pre>
- * -T 3
+ * -T
+ * 3
* -Drevision=1.3.0
+ * "-Dlabel=Apache Maven"
* </pre>
* and check if the {@code -Drevision-1.3.0} option can be overwritten via command line
* argument.
@@ -178,8 +182,10 @@ public class MavenCliTest {
/**
* Read .mvn/maven.config with the following definitions:
* <pre>
- * -T 3
+ * -T
+ * 3
* -Drevision=1.3.0
+ * "-Dlabel=Apache Maven"
* </pre>
* and check if the {@code -Drevision-1.3.0} option can be overwritten via command line
* argument.
@@ -205,8 +211,10 @@ public class MavenCliTest {
/**
* Read .mvn/maven.config with the following definitions:
* <pre>
- * -T 3
+ * -T
+ * 3
* -Drevision=1.3.0
+ * "-Dlabel=Apache Maven"
* </pre>
* and check if the {@code -Drevision-1.3.0} option can be overwritten via command line argument when there are
* funky arguments present.
@@ -229,11 +237,14 @@ public class MavenCliTest {
cli.cli(request);
cli.properties(request);
+ assertEquals("3", request.commandLine.getOptionValue(CLIManager.THREADS));
+
String revision = System.getProperty("revision");
assertEquals("8.2.0", revision);
assertEquals("bar ", request.getUserProperties().getProperty("foo"));
assertEquals("bar two", request.getUserProperties().getProperty("foo2"));
+ assertEquals("Apache Maven", request.getSystemProperties().getProperty("label"));
assertEquals("-Dpom.xml", request.getCommandLine().getOptionValue(CLIManager.ALTERNATE_POM_FILE));
}
diff --git a/maven-embedder/src/test/projects/config/.mvn/maven.config b/maven-embedder/src/test/projects/config/.mvn/maven.config
index 3d0f13b2c..280d57794 100644
--- a/maven-embedder/src/test/projects/config/.mvn/maven.config
+++ b/maven-embedder/src/test/projects/config/.mvn/maven.config
@@ -1,2 +1,3 @@
--T8 --builder
- multithreaded
+-T8
+--builder
+multithreaded
diff --git a/maven-embedder/src/test/projects/mavenConfigProperties/.mvn/maven.config b/maven-embedder/src/test/projects/mavenConfigProperties/.mvn/maven.config
index c73de53ae..82570230f 100644
--- a/maven-embedder/src/test/projects/mavenConfigProperties/.mvn/maven.config
+++ b/maven-embedder/src/test/projects/mavenConfigProperties/.mvn/maven.config
@@ -1,3 +1,5 @@
--T 3
+-T
+3
-Drevision=1.3.0
+"-Dlabel=Apache Maven"