[MRELEASE-932] ReleaseFailureException of an artifact with version as a property
- Dominant language
- Java
- Stars
- 128
- Forks
- 145
- Avg merge
- 7h 7m
- Merged PRs (30d)
- 3
Description
**[Antoine](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=elryk)** opened **[MRELEASE-932](https://issues.apache.org/jira/browse/MRELEASE-932?redirect=false)** and commented
After updating the release maven plugin from version 2.0.0 to 2.5.1, I've got the following exception:
```
message : Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.1:prepare (default-cli) on project ping-parent: The artifact (com.mycompagny.myapp:myapp-client) requires a different version (15.4.0) than what is found (12.2.1) for the expression (version.client.tested) in the project (com.mycompagny.myapp:myapp-client).
cause : The artifact (com.mycompagny.myapp:myapp-client) requires a different version (15.4.0) than what is found (12.2.1) for the expression (version.client.tested) in the project (com.mycompagny.myapp:myapp-client).
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.1:prepare (default-cli) on project ping-parent: The artifact (fr.generali.gael.ping:ping-injection-client) requires a different version (15.4.1-git) than what is found (15.4.0) for the expression (version.client.tested) in the project (fr.generali.gael.ping:ping-client-test).
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
```
This error happens in a multi-module application.
For testing purpose, we depends from an older version of an artefact of the same application.
When the artefact version is an expression (ie. ${version.client.tested}), the [AbstractRewritePomsPhase](http://grepcode.com/file/repo1.maven.org/maven2/org.apache.maven.release/maven-release-manager/2.5.1/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java/#545) class do a chek.
If we don't use the expression (i.e. properties), the release is working.
Maven configuration that fails:
```
12.1.0
${project.groupId}
myapp-client
${version.client.tested}
```
Maven configuration that is working:
```
${project.groupId}
myapp-client
12.1.0
```
---
**Affects:** 2.5.1, 2.5.3
**Attachments:**
- [MRELEASE-932.zip](https://issues.apache.org/jira/secure/attachment/13030262/MRELEASE-932.zip) (_2.72 kB_)
2 votes, 6 watchers
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the failing Maven release configuration and the attached MRELEASE-932.zip, then inspect AbstractRewritePomsPhase around the reported check. Compare the property-expression dependency with the equivalent literal version and verify that the release prepare operation handles both consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100