I have a Maven project that looks like the following:
- enterprise-pom
- commons
- core
- domain
- dao
- search
- importer-batch-app
- processor-batch-app
- systems
- server-system
- client-system
core depends on enterprise-pom and common.
I just worked on releasing 3.0.0 of core, by doing:
Release 3.0.0 of enterprise-pom
Release 3.0.0 of commons
Release 3.0.0 of core
All of these are at 3.0.1-SNAPSHOT and there's a tag created for 3.0.0 in SVN.
We did not want to release systems. So it's still on 3.0.0-SNAPSHOT.
Question:
Should i manually just change the systems pom to 3.0.1-SNAPSHOT without releasing it(as it's not going to be used at all)?
The systems depends on core. and the dependency is still at 3.0.0-SNAPSHOT, currently. What should that update to?
As so often the answer is: it depends.
If you ever plan to release all together you probably should change the version number since everything in one release process should have the same version (not mandatory but somehow default).
If the sub modules have and will have different release cycles don't change it manually.
if your developers open everything at once in their IDE you should manually adjust the dependency to 3.0.1-SNAPSHOT not to confuse them. If they open sub-project by sub-project you should change the dependency to the released version 3.0.0 and handle it just as any other 3rd party lib.
In case essentially everything has the same release cycle but for now you don't want to make the system artifacts publicly available you could also turn off the deployment of these artifacts:
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
and just release all together