[
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)