I have a multi-module project.
parent POM (1.0-SNAPSHOT) |-- module1 (1.0-SNAPSHOT) |-- module2 (1.0-SNAPSHOT) `-- module3 (1.0-SNAPSHOT)
When I execute mvn release:prepare it verify that parent POM has a SNAPSHOT version and all dependent modules don't have a SNAPSHOT version. How automatically update all child modules from SNAPSHOT to the next release version?
I would like automatically increment version for all modules.
The release plugin can handle that. Did you check Updating POM Versions? But...
I don't get something. Changing the version in the POMs from x-SNAPSHOT to a new version and bumping the version in the POMs to a new value y-SNAPSHOT should be done by release:prepare
as explained in Prepare a Release. What is going wrong when using this goal?
Update: The autoVersionSubmodules
parameter might be what you're looking for. From the Prepare a Release example:
Multi-module projects
You will be prompted for the version number for each module of the project. If you prefer that every module gets the same version as the parent POM, you can set the option
autoVersionSubmodules
totrue
. Now you will be asked only once for the release version and the next development version.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>x.y.z</version>
<configuration>
<goals>deploy</goals>
<autoversionsubmodules>true</autoversionsubmodules>
</configuration>
</plugin>
</plugins>
</build>