Affects Version/s: 2.5.3
Fix Version/s: None
I recently migrated from svn to git
I also have an additional problem with an incorrectly determined ReleaseDescriptor.scmRelativePathProjectDirectory in release:perform
the main issue is the existence of /maven-dir, so the all the maven project dirs don't live in the repos root, but in a sub-folder.
on release:perform of aggregator/pom.xml, a checkout happens into target/checkout
org.apache.maven.shared.release.config.ReleaseDescriptor.setScmRelativePathProjectDirectory(String) determines scmRelativePathProjectDirectory incorrectly:
existing code worked with svn, because unlike git, release:prepare would tag only the maven-dir substructure of the svn repos, while in git, it tags the whole repos?
so release:perform with svn checkout of the tag would result in only the /maven-dir/ being checked out into /target/checkout, leading to e.g.:
for git, release:perform checkout of tag pulls the whole repos, so its:
code to determine scmRelativePathProjectDirectory does not account for that.
suggestion: let me define a relative project location for full-repos scm's like git, either in project/scm or in release-plugin configuration
I also attaching my current workaround. I made a custom built of maven-release-plugin based on 2.5.3
I added org.apache.maven.plugins.release.GitperformReleaseMojo
- add a scmRelativePathProjectDirectory configuration param
- set ReleaseDescriptor.scmRelativePathProjectDirectory to param value shortly before its needed, by injecting a custom CheckoutProjectFromScm phase
- simply setting ReleaseDescriptor.scmRelativePathProjectDirectory in GitperformReleaseMojo.execute() doesn't work, because ReleaseDescriptor gets constructed/partly-copied/merged/overwritten later (awful!)...
- prevent wrong ReleaseDescriptor.setScmRelativePathProjectDirectory in CheckoutProjectFromScm.performCheckout using a ReleaseDescriptor delegate
its not a solution, but it demonstrates what I want to achieve: properly setting ReleaseDescriptor.scmRelativePathProjectDirectory and not having it overwritten later with wrong value