Maven Release Plugin
  1. Maven Release Plugin
  2. MRELEASE-235

Need ability to execute goals during prepare after scm-tag but before scm-commit-development phase

    Details

    • Type: New Feature New Feature
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Duplicate
    • Affects Version/s: 2.0-beta-6
    • Fix Version/s: None
    • Component/s: scm
    • Labels:
      None
    • Patch Submitted:
      Yes
    • Number of attachments :
      1

      Description

      During release:prepare I have a plugin that needs to be called after the scm-tag phase but before the scm-commit-development phase.

      My plugin updates the subclipse-tags property trunk folder so that Subclipse (Eclipse plugin for SVN) can provide good visual clues on the history tab showing which revisions were released and a what.

      My plugin needs to be able to
      1) read release.properties to get the scm.tag
      2) use SVN to retrieve the SVN Revision for the scm.tag (hence need to execute after scm-tag phase)
      3) use SVN to retrieve the subclipse-tags property from the trunk
      4) Append the appropriate tag lines to the retrieve property.
      5) use SVN to update the subclipse-tags property on the trunk
      6) Either use SVN to commit or be comfortable that an SVN commit will occur by other means (hence need to execute before scm-commit-development-phase)

      I'm not sure of the best approach to take. A new phase needs to available in which to execute. Either
      a) after scm-tag but before scm-commit-development in which case I leave the commit to the scm-commit-development phase. Perhaps a little too coupled and hides a little too much meaning, but only generates 2 commits for a release instead of 3.
      b) after scm-commit-development (eg run-post-preparation-goals) which is self contained as it needs to commit. It will generate an extra commit each release, but the commit message can at least clearly relate to update of the subclipse-tags property. I think I'll attempt this.

      I thought I could take the easy approach and run the goal during release:perform, but the basedir during run-perform-goals is project.basedir/target/checkout and points to the Tag not the trunk. So my plugin would become highly coupled to being executed during release:perform as well as having intimate knowledge of expecting execution folders.

      Unless someone interjects I intend on having a go at this and providing it as a patch.
      So if I'm way off base please provide feedback to guide me.

      What's the expected release date for 2.0-beta-6 ?

        Issue Links

          Activity

            People

            • Assignee:
              Robert Scholte
              Reporter:
              William Ferguson
            • Votes:
              9 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: