diff --git a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParser.java b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParser.java index b18ad6c0..bd917e92 100644 --- a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParser.java +++ b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParser.java @@ -39,6 +39,7 @@ List parse(String args) { } final List arguments = new LinkedList<>(); + final List allArguments = new LinkedList<>(); final StringBuilder argumentBuilder = new StringBuilder(); Character quote = null; @@ -64,13 +65,15 @@ List parse(String args) { addArgument(argumentBuilder, arguments); + // Prepend additionalArguments before the other arguments for (String argument : this.additionalArguments) { if (!arguments.contains(argument)) { - arguments.add(argument); + allArguments.add(argument); } } + allArguments.addAll(arguments); - return new ArrayList<>(arguments); + return new ArrayList<>(allArguments); } private static void addArgument(StringBuilder argumentBuilder, List arguments) { diff --git a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/NpxRunner.java b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/NpxRunner.java index b4f4db1d..7380c680 100644 --- a/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/NpxRunner.java +++ b/frontend-plugin-core/src/main/java/com/github/eirslett/maven/plugins/frontend/lib/NpxRunner.java @@ -16,10 +16,10 @@ public DefaultNpxRunner(NodeExecutorConfig config, ProxyConfig proxyConfig, Stri // Visible for testing only. /** - * These are, in fact, npm arguments, that need to be split from the npx arguments by '--'. + * These are, in fact, npm arguments, that need to come before the package arguments. * * See an example: - * npx some-package -- --registry=http://myspecialregisty.com + * npx --registry=http://myspecialregisty.com some-package */ static List buildNpmArguments(ProxyConfig proxyConfig, String npmRegistryURL) { List arguments = new ArrayList<>(); @@ -51,7 +51,6 @@ static List buildNpmArguments(ProxyConfig proxyConfig, String npmRegistr npmArguments = arguments; } else { npmArguments = new ArrayList<>(); - npmArguments.add("--"); npmArguments.addAll(arguments); } diff --git a/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParserTest.java b/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParserTest.java index f92e89da..b7b49c06 100644 --- a/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParserTest.java +++ b/frontend-plugin-core/src/test/java/com/github/eirslett/maven/plugins/frontend/lib/ArgumentsParserTest.java @@ -60,13 +60,13 @@ public void repeatedArgumentsAreAccepted() { public void testAdditionalArgumentsNoIntersection() { ArgumentsParser parser = new ArgumentsParser(Arrays.asList("foo", "bar")); - assertArrayEquals(new Object[] { "foobar", "foo", "bar" }, parser.parse("foobar").toArray()); + assertArrayEquals(new Object[] { "foo", "bar", "foobar" }, parser.parse("foobar").toArray()); } @Test public void testAdditionalArgumentsWithIntersection() { ArgumentsParser parser = new ArgumentsParser(Arrays.asList("foo", "foobar")); - assertArrayEquals(new Object[] { "bar", "foobar", "foo" }, parser.parse("bar foobar").toArray()); + assertArrayEquals(new Object[] { "foo", "bar", "foobar" }, parser.parse("bar foobar").toArray()); } }