[
https://issues.apache.org/jira/browse/MRELEASE-782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15314591#comment-15314591
]
Arnaud D edited comment on MRELEASE-782 at 6/4/16 9:54 AM:
-----------------------------------------------------------
I can reproduce on Maven 3.3.9 and the 2.5.3 release plugin
So its affecting a large number of versions, who knows, after 4 years maybe
someone will wake up and will do magic
The best workaround I have found to 1) quickly patch 2) maintain the support of
<properties> and <plugin> tags in the child pom is to
The trick is to use a project.xxx custom variable and to inject releaseVersion
in it at the right time, in my sample I'm using project.sdrVersion propagated
in all the dependencies tag of child poms
*In you Parent pom.xml*
Add in the <properties> tag
{code:title=XML|borderStyle=solid}
<project.sdrVersion>${project.version}</project.sdrVersion>
<arguments>-Dproject.sdrVersion=${project.sdrVersion}</arguments>
{code}
*Also in you Parent pom.xml add the injector profile*
{code:title=XML|borderStyle=solid}
<!-- Workaround a known maven-release-plugin bug 4 yr + :/
https://issues.apache.org/jira/browse/MRELEASE-782-->
<profile>
<id>releasePluginPatch</id>
<activation>
<property>
<name>releaseVersion</name>
</property>
</activation>
<properties>
<project.sdrVersion>${releaseVersion}</project.sdrVersion>
</properties>
</profile>
{code}
And anywhere possible, propagate ${project.sdrVersion} as your version
You will maintain the ability to create fake version number releases + real
release + you will be able to use <properties> in the child poms YEY !
was (Author: class101):
I can reproduce on Maven 3.3.9 and the 2.5.3 release plugin
So its affecting a large number of versions, who knows, after 4 years maybe
someone will wake up and will do magic
> Properties defined in a child pom hide all the properties defined in the
> parent pom while performing release:prepare
> --------------------------------------------------------------------------------------------------------------------
>
> Key: MRELEASE-782
> URL: https://issues.apache.org/jira/browse/MRELEASE-782
> Project: Maven Release Plugin
> Issue Type: Bug
> Components: prepare
> Affects Versions: 2.3.2
> Environment: Any
> Reporter: Marius Dumitru Florea
>
> Suppose you have this two poms:
> {code:title=Parent POM}
> ...
> <properties>
> <my.version>1.6</my.version>
> </properties>
> ...
> {code}
> {code:title=Child POM}
> ...
> <!-- No properties defined here! -->
> ...
> <plugin>
> ...
> <dependencies>
> <dependency>
> ...
> <version>${my.version}</version>
> </dependency>
> </dependencies>
> </plugin>
> ...
> {code}
> Running release:prepare on this works just fine. Now, if we add a
> {{properties}} section with any property to the child pom we get:
> {noformat}
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on
> project XYZ: The version could not be updated: ${my.version} -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
> goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare
> (default-cli) on project XYZ: The version could not be updated: ${my.version}
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> at
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> at
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> Caused by: org.apache.maven.plugin.MojoFailureException: The version could
> not be updated: ${commons.version}
> at
> org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:299)
> at
> org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:247)
> at
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
> ... 19 more
> Caused by: org.apache.maven.shared.release.ReleaseFailureException: The
> version could not be updated: ${my.version}
> at
> org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.rewriteArtifactVersions(AbstractRewritePomsPhase.java:578)
> at
> org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.transformDocument(AbstractRewritePomsPhase.java:298)
> at
> org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.transformProject(AbstractRewritePomsPhase.java:220)
> at
> org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.transform(AbstractRewritePomsPhase.java:126)
> at
> org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.simulate(AbstractRewritePomsPhase.java:713)
> at
> org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:228)
> at
> org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:169)
> at
> org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:146)
> at
> org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:107)
> at
> org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:291)
> ... 22 more
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)