[
http://jira.codehaus.org/browse/MRELEASE-516?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mathias Arens updated MRELEASE-516:
-----------------------------------
Attachment: MRELEASE-516-flat-project-structure-support-2.txt
Hello,
here is a patch build on top of revision 1041768 that also supports branching
on flat project strutures. The patch is only a alpha version for flat project
struture support but I branched and released with it several times already.
An important precondition to branching and releasing is that each project has
it's own scm tag. But I think this must be the case for flat project structures
anyway.
I added the 'commitByProject' attribute to commands like 'branch' and
'perform'. It's the indicator for a flat project struture. You could argue that
you can retrieve this information by analysing the poms and I think that's
possible but as said already this patch is only be a first version for an
enhancement.
An update of the simulate() routines is missing as well.
> release:prepare should support a nested/flat hybrid SCM structure
> -----------------------------------------------------------------
>
> Key: MRELEASE-516
> URL: http://jira.codehaus.org/browse/MRELEASE-516
> Project: Maven 2.x Release Plugin
> Issue Type: Improvement
> Components: perform, prepare
> Affects Versions: 2.0-beta-9
> Environment: OS X 10.5.8, Windows XP Prof, JDK 1.5.0_12, SVN, GIT, CVS
> Reporter: Eric Miles
> Attachments: maven-release-issue.zip,
> MRELEASE-516-flat-project-structure-support-2.txt,
> MRELEASE-516-flat-project-structure-support.txt, odd-tags.png
>
>
> This issue is related to MRELEASE-261 in that release prepare is having some
> difficulty in dealing with certain SCM structures during the prepare goal.
> Our project structure is flat as you would see in a typical IDE setup:
> {noformat}
> release-workspace\
> |
> |--release-parent
> | |+pom.xml (modules: ../release-module1, ../release-module2)
> |
> |--release-module1
> | |+pom.xml (parent: ../release-parent)
> |
> |--release-module2
> |+pom.xml (parent: ../release-parent)
> {noformat}
> Our SCM (svn) structure is as follows:
> {noformat}
> svnroot
> |
> +--release-parent/trunk/pom.xml
> +--release-parent/tags/release-parent-1.0.9/pom.xml
> |
> +--release-module1/trunk/pom.xml
> +--release-module1/tags/release-module1-1.0.9/pom.xml
> |
> +--release-module1/trunk/pom.xml
> +--release-module2/tags/release-module2-1.0.9/pom.xml
> {noformat}
> If we execute release:prepare with no configuration to the release plugin, we
> get the following error:
> {noformat}
> [INFO] [INFO]
> ------------------------------------------------------------------------
> [INFO] Checking in modified POMs...
> [INFO] Executing: /bin/sh -c cd
> /Users/emiles/Projects/release-workspace/release-parent && svn
> --non-interactive commit --file
> /var/folders/fH/fHNZYBGdFd0bMMIPiloA2U+++TI/-Tmp-/maven-scm-1253932520.commit
> --targets
> /var/folders/fH/fHNZYBGdFd0bMMIPiloA2U+++TI/-Tmp-/maven-scm-4376558781490229966-targets
> [INFO] Working directory:
> /Users/emiles/Projects/release-workspace/release-parent
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] BUILD FAILURE
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Unable to commit files
> Provider message:
> The svn command failed.
> Command output:
> svn: '/Users/emiles/Projects/release-workspace' is not a working copy
> {noformat}
> If we use the 2.0-beta-10-SNAPSHOT with flat project support and provide the
> -DcommitByProject=true JVM parameter, we do not get any errors, however
> tagging does not happen as expected. Rather than having tags for each of the
> projects, some odd tagging happened at the parent level where an entire
> structure was created (with branches, tags and trunk under the tag folder).
> I'm attaching a screen shot for reference.
> Ignoring the fact that the prepare only somewhat worked, when I attempted to
> perform the release, I get an error:
> {noformat}
> emiles-macbook:release-parent emiles$ mvn release:perform
> -DcommitByProject=true
> [INFO] Scanning for projects...
> [INFO] Reactor build order:
> [INFO] Unnamed - com.captechventures:release-parent:pom:0.0.3-SNAPSHOT
> [INFO] Unnamed - com.captechventures:release-module1:jar:0.0.3-SNAPSHOT
> [INFO] Unnamed - com.captechventures:release-module2:jar:0.0.3-SNAPSHOT
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building Unnamed -
> com.captechventures:release-parent:pom:0.0.3-SNAPSHOT
> [INFO] task-segment: [release:perform] (aggregator-style)
> [INFO]
> ------------------------------------------------------------------------
> [INFO] [release:perform {execution: default-cli}]
> [INFO] Checking out the project to perform the release ...
> [INFO] Executing: /bin/sh -c cd
> /Users/emiles/Projects/release-workspace/release-parent/target && svn
> --non-interactive checkout
> http://localhost/dev/release-parent/tags/release-parent-0.0.2
> /Users/emiles/Projects/release-workspace/release-parent/target/checkout
> [INFO] Working directory:
> /Users/emiles/Projects/release-workspace/release-parent/target
> [INFO] Executing goals 'deploy'...
> [WARNING] Base directory is a file. Using base directory as POM location.
> [WARNING] Maven will be executed in interactive mode, but no input stream has
> been configured for this MavenInvoker instance.
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Error executing Maven.
> Working directory
> "/Users/emiles/Projects/release-workspace/release-parent/target/checkout/Users/emiles/Projects/release-workspace/release-parent"
> does not exist!
> [INFO]
> ------------------------------------------------------------------------
> [INFO] For more information, run Maven with the -e switch
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 5 seconds
> [INFO] Finished at: Mon Jan 04 12:22:31 EST 2010
> [INFO] Final Memory: 11M/20M
> [INFO]
> ------------------------------------------------------------------------
> {noformat}
> Although this isn't the flat model as identifed in MRELEASE-261, I feel this
> flat structure should be supported as all the relevant SCM metadata is
> included in each POM so the plugin should have no difficulty determining
> where to check stuff into SCM.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira