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