You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Todd Nine <to...@gmail.com> on 2007/03/02 17:22:08 UTC

Multiproject Subversion Layout

Hi all,
  I'm created a multi project build using subversion for source
control.  I've used CVS in the past, so I'm a bit confused as to how I
need to layout the repository for a multiproject release in
subversion.  Here are the two options as I see them, which one should
I use to perform a release from the parent pom?

Option 1 (I think this is correct)


myrepo  +
             +branches
             +tags
             +trunk
             +--pom.xml(parent)
             +-- proj A (component)
             +-- proj B (component)

Option 2 (I'm not sure how the parent pom would tag the whole release this way)


myrepo +
            +pom.xml
             +Proj A(component)
             +--branches
             +--tags
             +--trunk
             +Proj B (component, same structure as proj A)

Thanks,
Todd

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: Multiproject Subversion Layout

Posted by tnine <to...@gmail.com>.
Hi Jörg,
  Thanks for your reply.  I have a couple of questions about your layout. 

1. You have two "parent" poms.  One in a sub directory for performing a
release, and another at the top level to link all modules together for
dependency resolution, is this correct?

2. You say your ".links/trunk" points to the trunk of every sub project. 
How do I get that into subversion?  I don't quite understand how to do that.

Thanks,
Todd


Jörg Schaible wrote:
> 
> Hi Todd,
> 
> Todd Nine wrote on Friday, March 02, 2007 5:22 PM:
> 
>> Hi all,
>>   I'm created a multi project build using subversion for source
>> control.  I've used CVS in the past, so I'm a bit confused as to how I
>> need to layout the repository for a multiproject release in
>> subversion.  Here are the two options as I see them, which one should
>> I use to perform a release from the parent pom?
>> 
>> Option 1 (I think this is correct)
>> 
>> 
>> myrepo  +
>>              +branches
>>              +tags
>>              +trunk
>>              +--pom.xml(parent)
>>              +-- proj A (component)
>>              +-- proj B (component)
>> 
>> Option 2 (I'm not sure how the parent pom would tag the whole
>> release this way)
>> 
>> 
>> myrepo +
>>             +pom.xml
>>              +Proj A(component)
>>              +--branches
>>              +--tags
>>              +--trunk
>>              +Proj B (component, same structure as proj A)
> 
> IMHO it simply depends on your release cycle. If the components from proj
> A+B share the same version I'd go with option 1. If they have an
> independent release cylce, we use a modified option 2:
> 
> myrepo
>   + .links (2)
>     + trunk
>       + pom.xml
>   + parent-pom (1)
>     + trunk
>       + pom.xml
>   + project-A
>     + trunk
>       + pom.xml
>   + project-B
>     + trunk
>       + pom.xml
> 
> 1) The parent POM of the project has an own release cycle. Every
> component's POM will use it as parent (referenced simply with group and
> artifact id, we're not using the relPath). For a release you'll have to
> release the parent POM first.
> 
> 2) This is a construction to enable easy check outs of a specific branch
> of the project i.e. normally the trunk. A subversion user checks out
> myrepo/.links/trunk to get the head revision of all sources. The trick is,
> that that directory contains external links to the trunks of all other
> modules of this project (parent-pom, project-A, project-B). The pom.xml in
> this directory is never released, it contains simply a modules section for
> the three modules to enable a multi module build. With this construct
> you're able to setup easily branches e.g.:
> 
> myrepo
>   + .links
>     + branch-2.x
>       + pom.xml
> 
> The external links in "myrepo/.links/branch-2.x" will point to the
> individual branches of the module. And this is really convenient, if
> branch 2.x does not mean that every subproject has an own branch (you
> might be able to use a released version - therefore no need to build the
> component that has no changes in the branch).
> 
> This setup works quite well for us.
> 
> - Jörg
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Multiproject-Subversion-Layout-tf3334487s177.html#a9498748
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org