You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Nils Winkler (JIRA)" <ji...@codehaus.org> on 2008/05/26 18:13:21 UTC
[jira] Issue Comment Edited: (MRELEASE-322) Unable to set the
working directory for projects where the master pom isn't at the root of
the project
[ http://jira.codehaus.org/browse/MRELEASE-322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=136181#action_136181 ]
nwinkler edited comment on MRELEASE-322 at 5/26/08 11:13 AM:
-----------------------------------------------------------------
I am facing the same problem. Did some work on this, please have a look at the two attached patches. Here's what they do (in addition to bumping up the version to 1.1-SNAPSHOT, which probably isn't that great - but it works to tell them apart from the official version):
h3. maven-release-plugin-flat.patch
* Moves the {{commitByProject}} attribute up to the {{AbstractReleaseMojo}} class. This way this attribute is available for both the prepare and the perform goals.
h3. maven-release-manager-flat.patch
* If the {{commitByProject}} parameter is set, the tagging also goes through the list of projects in the reactor and commits each one of them.
* During the perform phase, the working directory is set to the directory containing the parent POM, i.e. {{master/target/checkout/master}}
You can run this like this:
{code}
master> mvn -DcommitByProject=true release:prepare
master> mvn -DcommitByProject=true release:perform
{code}
The tag patch currently expects a SCM management layout like this - tested with SVN:
{code}
/project
+trunk
+master
+module-a
+module-b
+tags
+foo-1.0
+master
+module-a
+module-b
{code}
I have implemented it like this since it reflects our current environment. To use a different layout, I would recommed playing around with the code in {{ScmTagPhase.java}}. Maybe another parameter could be added to specify the SCM layout to use.
Hope this helps some of you.
was (Author: nwinkler):
I am facing the same problem. Did some work on this, please have a look at the two attached patches. Here's what they do (in addition to bumping up the version to 1.1-SNAPSHOT, which probably isn't that great - but it works to tell them apart from the official version):
.h2 maven-release-plugin-flat.patch
* Moves the {{commitByProject}} attribute up to the {{AbstractReleaseMojo}} class. This way this attribute is available for both the prepare and the perform goals.
.h2 maven-release-manager-flat.patch
* If the {{commitByProject}} parameter is set, the tagging also goes through the list of projects in the reactor and commits each one of them.
* During the perform phase, the working directory is set to the directory containing the parent POM, i.e. {{master/target/checkout/master}}
You can run this like this:
{code}
master> mvn -DcommitByProject=true release:prepare
master> mvn -DcommitByProject=true release:perform
{code}
The tag patch currently expects a SCM management layout like this - tested with SVN:
{code}
/project
+trunk
+master
+module-a
+module-b
+tags
+foo-1.0
+master
+module-a
+module-b
{code}
I have implemented it like this since it reflects our current environment. To use a different layout, I would recommed playing around with the code in {{ScmTagPhase.java}}. Maybe another parameter could be added to specify the SCM layout to use.
Hope this helps some of you.
> Unable to set the working directory for projects where the master pom isn't at the root of the project
> ------------------------------------------------------------------------------------------------------
>
> Key: MRELEASE-322
> URL: http://jira.codehaus.org/browse/MRELEASE-322
> Project: Maven 2.x Release Plugin
> Issue Type: Bug
> Components: scm
> Affects Versions: 2.0-beta-7
> Reporter: Christian Nelson
> Priority: Blocker
> Attachments: maven-release-manager-flat.patch, maven-release-plugin-flat.patch
>
>
> Branches and Tags are created from the current working directory, which isn't always correct and there isn't a way to override the working directory.
> For example, we have the following directory structure:
> ${root}/master/pom.xml - The modules section include relative paths to modules a, b, and c.
> ${root}/module-a/pom.xml
> ${root}/module-b/pom.xml
> ${root}/module-c/pom.xml
> All subversion copies (via branch or prepare) originate from ${root}/master. As a result, they are incomplete; we really want to create copies from ${root} not ${root}/master. Here's the subversion command that I think is the problem:
> {noformat}
> [INFO] Working directory: C:\devsys\repos\trunk\master
> [INFO] Branching release with the label release-1.0...
> [INFO] Executing: svn --non-interactive copy --file C:\Users\cnelson\AppData\Local\Temp\maven-scm-1179760787.commit . http://hostname/svn/dev/branches/release-1.0
> {noformat}
> The period after the filename is what's indicating to subversion to create the copy from master instead of ${root}. Note: the working directory is derived from the basedir and I couldn't find a way to override the basedir.
> While not having the master pom at the root of the project may be a little uncommon, it doesn't seem unreasonable. Can we add a configuration option to handle these cases?
--
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