maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nils Winkler (JIRA)" <j...@codehaus.org>
Subject [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
Date Mon, 26 May 2008 16:13:21 GMT

    [ 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

        

Mime
View raw message