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 2021/07/15 16:55:48 UTC
[maven] 01/01: [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 MNG-7131
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 194f08fd228f9bd1ab754a7b2e356fb01472c26b
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.
---
maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java | 3 ++-
maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java | 5 +++++
maven-embedder/src/test/projects/config/.mvn/maven.config | 5 +++--
.../src/test/projects/mavenConfigProperties/.mvn/maven.config | 1 +
4 files changed, 11 insertions(+), 3 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 45fe047..07a9c78 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
@@ -104,6 +104,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;
@@ -387,7 +388,7 @@ public class MavenCli
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() )
{
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 164b85a..6bef826 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
@@ -197,6 +197,7 @@ public class MavenCliTest
* <pre>
* -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.
@@ -223,6 +224,7 @@ public class MavenCliTest
* <pre>
* -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.
@@ -251,6 +253,7 @@ public class MavenCliTest
* <pre>
* -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.
@@ -279,6 +282,7 @@ public class MavenCliTest
* <pre>
* -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.
@@ -305,6 +309,7 @@ public class MavenCliTest
assertEquals( "bar ", request.getSystemProperties().getProperty( "foo" ) );
assertEquals( "bar two", request.getSystemProperties().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 3d0f13b..280d577 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 c73de53..57c76cc 100644
--- a/maven-embedder/src/test/projects/mavenConfigProperties/.mvn/maven.config
+++ b/maven-embedder/src/test/projects/mavenConfigProperties/.mvn/maven.config
@@ -1,3 +1,4 @@
-T 3
-Drevision=1.3.0
+"-Dlabel=Apache Maven"