I'd like to share my use case with you to understand why people may have 'unusual' project structures.
I think that my problem is the same as the one in this issue, but not sure.
So, my apologizes if this does not fit 100% and should be posted to MRELEASE-516
We started with the following set up:
These were more or less independent artifacts and the release process was just releasing those three artifacts individually.
Every module's pom.xml has its own <scm> element.
After a while, additional modules were implemented and a common parent pom was introduced, hence the structure became:
Now, the release process for many modules takes up a lot of time and the idea is to aggregate all the releases into
a single release step from a release manager point of view. So, a reactor build is put on top of the whole thing:
Everything/trunk/pom.xml (Modules: ModuleA, ModuleB ... ModuleZ)
The Everything-pom.xml contains the modules:
Then, all the trunks are checked out from SCM (SVN, using the svn:externals property) into the local working copy, so they reflect the correct
structure without any 'trunk' folders or relative paths like "../ModuleA".
pom.xml (from Everything/trunk/pom.xml)
Now, i'm trying to perform a release in the root of this folder, e.g. the "Everything" project.
The reactor will prepare all modules, but unfortunately, the SVN tag of each module is overwritten and becomes incorrect.
Each module should be committed to its own 'tags/' folder with name and version of the module.
However, what actually happens is, the release plugin replaces all SCM URLS of each module with the name of the Everything-pom.xml:
Actually in pom.xml.tag: <url>scm:svn:.../ModuleA/tags/Everything-1.0/ModuleA/trunk</url>
Expected in pom.xml.tag: <url>scm:svn:.../ModuleA/tags/ModuleA-1.0</url>