[
https://issues.apache.org/jira/browse/MNG-8434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17905927#comment-17905927
]
Delany commented on MNG-8434:
-----------------------------
My parent project sets the build element
{code:xml}
<finalName>${build.finalName}</finalName>
{code}
and the property
{code:xml}
<build.finalName>${project.artifactId}-${project.version}</build.finalName>
{code}
So it looks like Maven is now using that property even though I got there first!
It would be good if Maven could reserve a pattern for properties so we can
avoid a collision in future.
> Recursive variable reference
> ----------------------------
>
> Key: MNG-8434
> URL: https://issues.apache.org/jira/browse/MNG-8434
> Project: Maven
> Issue Type: Bug
> Affects Versions: 4.0.0-rc-2
> Reporter: Delany
> Priority: Major
>
> With project wrapper/maven-wrapper.properties
> {code:java}
> wrapperVersion=3.3.2
> distributionType=only-script
> distributionUrl=https://repository.apache.org/content/repositories/maven-2256/org/apache/maven/apache-maven/4.0.0-rc-2/apache-maven-4.0.0-rc-2-bin.zip{code}
> a settings file profile
> {code:java}
> <profile>
> <id>stage</id>
> <activation>
> <property>
> <name>stage</name>
> </property>
> </activation>
> <repositories>
> <repository>
> <id>staging</id>
> <name>Maven Staging</name>
>
> <url>https://repository.apache.org/content/repositories/maven-${stage}/</url>
> </repository>
> </repositories>
> <pluginRepositories>
> <pluginRepository>
> <id>staging-plugin</id>
> <name>Maven Staging</name>
>
> <url>https://repository.apache.org/content/repositories/maven-${stage}/</url>
> </pluginRepository>
> </pluginRepositories>
> </profile> {code}
> and command
> {code:java}
> ./mvnw -N clean -Dstage=2256 -e{code}
> I get this error
> {code:java}
> [ERROR] The build could not read 1 project -> [Help 1]
> org.apache.maven.project.ProjectBuildingException: Some problems were
> encountered while processing the POMs
> at
> org.apache.maven.project.DefaultProjectBuilder$BuildSession.build(DefaultProjectBuilder.java:464)
> at
> org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:184)
> at
> org.apache.maven.project.collector.DefaultProjectsSelector.selectProjects(DefaultProjectsSelector.java:61)
> at
> org.apache.maven.project.collector.RequestPomCollectionStrategy.collectProjects(RequestPomCollectionStrategy.java:49)
> at
> org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor(DefaultGraphBuilder.java:364)
> at
> org.apache.maven.graph.DefaultGraphBuilder.build(DefaultGraphBuilder.java:100)
> at org.apache.maven.DefaultMaven.buildGraph(DefaultMaven.java:629)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:250)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:225)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:149)
> at
> org.apache.maven.cling.invoker.mvn.MavenInvoker.doExecute(MavenInvoker.java:470)
> at
> org.apache.maven.cling.invoker.mvn.MavenInvoker.execute(MavenInvoker.java:95)
> at
> org.apache.maven.cling.invoker.mvn.MavenInvoker.execute(MavenInvoker.java:85)
> at
> org.apache.maven.cling.invoker.LookupInvoker.doInvoke(LookupInvoker.java:145)
> at
> org.apache.maven.cling.invoker.LookupInvoker.invoke(LookupInvoker.java:116)
> at org.apache.maven.cling.ClingSupport.run(ClingSupport.java:64)
> at org.apache.maven.cling.MavenCling.main(MavenCling.java:51)
> at
> jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
> at java.lang.reflect.Method.invoke(Method.java:580)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
> [ERROR]
> [ERROR] The project com.rushmore:rushmore-parent:2.4.1-SNAPSHOT
> (/git/rushmore/pom.xml) has 1 error
> [ERROR] recursive variable reference: build.finalName
> org.apache.maven.api.services.InterpolatorException: recursive variable
> reference: build.finalName
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.resolveVariable(DefaultInterpolator.java:374)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.processSubstitution(DefaultInterpolator.java:312)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.doSubstVars(DefaultInterpolator.java:271)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.resolveVariable(DefaultInterpolator.java:385)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.processSubstitution(DefaultInterpolator.java:312)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.doSubstVars(DefaultInterpolator.java:271)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.substVars(DefaultInterpolator.java:206)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.interpolate(DefaultInterpolator.java:86)
> at
> org.apache.maven.internal.impl.model.DefaultInterpolator.interpolate(DefaultInterpolator.java:75)
> at
> org.apache.maven.internal.impl.model.DefaultModelInterpolator.lambda$createInterpolator$3(DefaultModelInterpolator.java:117)
> at
> org.apache.maven.model.v4.MavenTransformer.transform(MavenTransformer.java:93)
> at
> org.apache.maven.model.v4.MavenTransformer.transformBuildBase_FinalName(MavenTransformer.java:467)
> at
> org.apache.maven.model.v4.MavenTransformer.transformBuild(MavenTransformer.java:502)
> at
> org.apache.maven.model.v4.MavenTransformer.transformModel_Build(MavenTransformer.java:300)
> at
> org.apache.maven.model.v4.MavenTransformer.transformModel(MavenTransformer.java:132)
> at
> org.apache.maven.model.v4.MavenTransformer.visit(MavenTransformer.java:86)
> at
> org.apache.maven.internal.impl.model.DefaultModelInterpolator.interpolateModel(DefaultModelInterpolator.java:104)
> at
> org.apache.maven.internal.impl.model.DefaultModelBuilder.interpolateModel(DefaultModelBuilder.java:1911)
> at
> org.apache.maven.internal.impl.model.DefaultModelBuilder$ModelBuilderSessionState.readEffectiveModel(DefaultModelBuilder.java:1218)
> at
> org.apache.maven.internal.impl.model.DefaultModelBuilder$ModelBuilderSessionState.buildEffectiveModel(DefaultModelBuilder.java:810)
> at
> org.apache.maven.internal.impl.model.DefaultModelBuilder$ModelBuilderSessionState.lambda$buildBuildPom$7(DefaultModelBuilder.java:678)
> at
> org.apache.maven.internal.impl.util.PhasingExecutor.lambda$execute$0(PhasingExecutor.java:80)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
> at java.lang.Thread.run(Thread.java:1583){code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)