[ https://issues.apache.org/jira/browse/MNG-6303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17702024#comment-17702024 ]
ASF GitHub Bot commented on MNG-6303: ------------------------------------- elharo commented on code in PR #1062: URL: https://github.com/apache/maven/pull/1062#discussion_r1140831831 ########## maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java: ########## @@ -544,6 +544,19 @@ public void populatePropertiesOverwrite() throws Exception { assertThat(request.getUserProperties().getProperty("x"), is("false")); } + @Test + public void testPropertiesInterpolation() throws Exception { Review Comment: There should also be a test for the exceptional case. ########## maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java: ########## @@ -562,6 +566,21 @@ private void commands(CliRequest cliRequest) { // Maybe it's better to move some of those methods to separate class (SoC). void properties(CliRequest cliRequest) { populateProperties(cliRequest.commandLine, cliRequest.systemProperties, cliRequest.userProperties); + + // now that we have properties, interpolate all arguments + BasicInterpolator interpolator = createInterpolator(cliRequest.systemProperties, cliRequest.userProperties); + CommandLine.Builder commandLineBuilder = new CommandLine.Builder(); + cliRequest.commandLine.getArgList().stream() + .map(s -> { + try { + return interpolator.interpolate(s); + } catch (InterpolationException e) { + throw new RuntimeException("Unable to interpolate", e); Review Comment: This should not be a runtime exception since it comes from input external to the program. InterpolationException might be OK, or perhaps a different checked exception. If this means, the code doesn;t use lambdas, that's fine. > .mvn/jvm.config and .mvn/maven.config should allow to resolve environment > variables > ----------------------------------------------------------------------------------- > > Key: MNG-6303 > URL: https://issues.apache.org/jira/browse/MNG-6303 > Project: Maven > Issue Type: New Feature > Components: Bootstrap & Build > Affects Versions: 3.5.0 > Reporter: Konrad Windszus > Priority: Major > > With the mechanism of having project-specific maven options being specified > in {{.mvn/maven.config}} and {{.mvn/jvm.config}} (MNG-6267) it is often handy > to share those settings among multiple developers (i.e. via maintaining it > via the SCM). Unfortunately the mechanism does not support resolving > environment variables, which makes it hard to deal with user-specific > directories or settings. Please support resolving environment variables > through a special pattern like {{$ENV_NAME}} -- This message was sent by Atlassian Jira (v8.20.10#820010)