[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Maven & Repository Layout

From: Mina R Waheeb <syncer_at_gmail.com>
Date: Wed, 30 Jul 2008 00:35:13 +0300

Hi Karl,

On 7/29/08, Karl Heinz Marbaise <khmarbaise_at_gmx.de> wrote:
> Hi,
>
>
> the question you have to answer is simply:
>
> Are those leaf components used by other parent projects except the one
> you described here?

Yes, the leaf components are dependency (runtime or compile time) for
another leaf or non-leaf components.

>
>> There is another methodology to create a flat structure for all the
>> system components and use the idea of svn:externals to link em all as
>> described below.
>>
>> |--- REPO
>> |---- comp1.sub.component1
>> |---- comp2.sub2.component1
>> |---- branches/
>> |---- tags/
>> |---- trunk/
>> |---- pom.xml
>> |---- src
>> |---- project ()
> You should simply create trunk, tags and branches folders for it, cause
> it's part of your release process so you have to make tags for releases
> and branches for different development lines...
>
> put the following onto the "trunk".
>> |---- pom.xml (Maven project descriptor)
>> |---- component 1 (external link to
>> REPO/comp2.sub2.component1/trunk)

Yeah, I understand your point.

>>
>> In this case the problem of the container componet POM file still exist :(
>>
>> Is there any recommendation or best practices for the above structure
>> or Maven layout.
>
> The other things is never use an external with "/trunk". You should use
> "/tags/XXX" instead....

What about checkout current development line for the hole project?

>
> I would suggest to use a simpler layout...
> |---Root
> | !
> | +--- Project
> | +-- tags
> | +-- branches
> | +-- trunk
> | +--- pom.xml
> | +--- component1
> | +--- pom.xml
> | +--- component2
> | +--- pom.xml
> ....will be much more simpler to use....

I can't make one big trunk for all the code, because the code is
related but in the end its assembled in separated products.

The layout below explains more our code structure.

|--- Root
    |---- pom.xml (Maven global organization descriptor)
    |---- commons
         |---- component 1 (A leaf componet)
              |---- pom.xml
              |---- src
         |---- component 2 (A leaf componet)
              |---- pom.xml
              |---- src
    |---- Project A (A container for project)
         |---- pom.xml
         |---- comp2-sub1 (A container component or sub-project)
              |---- pom.xml
              |---- c2-s1-s1 (dependency on commons/componet2)
                   |---- pom.xml
                   |---- src
    |---- Project B (A container for project)
         |---- pom.xml
         |---- comp2-sub1 (A container component or sub-project)
              |---- pom.xml
              |---- comp2-sub1-sub (integration dependency on Project
A/c2-s1-s1)
                   |---- pom.xml
                   |---- src

The code is too big, I hope you get the hole picture now and thanks for reply.

Regards,
Mina R Waheeb

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-07-29 23:35:32 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.