Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
2.0-beta-4, 2.0-beta-5
-
None
-
None
Description
On a multiproject build, snapshot version are not restored correctly in a multiproject build.
for example if module1 depends on module2-1.0-SNAPSHOT (both modules are part of the same reactor build) this is the initial dependency:
<dependency>
<groupId>test</groupId>
<artifactId>module2</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
during the rewrite pom for release phase the dependency will be correctly updated to module2-2.0
<dependency>
<groupId>test</groupId>
<artifactId>module2</artifactId>
<version>2.0</version>
</dependency>
but after updating poms for the next development version the version stay as is.
<dependency>
<groupId>test</groupId>
<artifactId>module2</artifactId>
<version>2.0</version>
</dependency>
while it should be upgraded to 2.0-SNAPSHOT
The problem is still in the current svn version, although all the tests for RewritePomsForDevelopmentPhase work correctly: the problem is that RewritePomsForDevelopmentPhase expects to update version from <release version> to snapshot, but the RewritePomsForReleasePhase DON'T change the versions in the loaded projects. Poms are updated as described, but at the end of the "rewrite for release" phase the version seen by the plugin is still the original one (1.0-SNAPSHOT for the example above).
This means that rewrite works correctly if phases are tested alone (and, in a real scenario, if you kill maven in between of the release steps and restart it, so that it can re-read poms), but it don't work correctly when poms are rewritten more than once in the same run.
The problem can be verified by looking at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase:updateDomVersion()
where the check
if ( version.equals( originalVersion ) )
fails on a full run of the release plugin