On Tue, Apr 26, 2011 at 3:42 AM, xanadu72 <[email protected]> wrote:
> Barrie,
> I know that Eclipse is able to import a hierarchical structure but i have a
> concern with Subversion. The recommended structure for Subversion is using
> trunk,tags,branches subfolders. Is it compatible with the following file
> structure in svn :
>
> +-MyApplication/
>  +-trunk
>    +-pom.xml
>  +-tags
>  +-branches
>  +-business
>     +-trunk
>        +-business-api
>        +-business-impl
>     +-tags
>  etc.....
>
> What layout do you recommend if i want to manage tiers versions separately
> and have the recommended subversion directory layout. I want as much as
> possible minimize the work load for configuration and offer maximum
> flexibility to work on one or several branches and the trunk.

I'm not sure I can answer that question for you.
I know enough configuration management to be dangerous but not useful.

You could look at http://svn.apache.org/viewvc/maven/plugins/ and see
if that offers guidance.

However, I'll try.

Looking at that structure I immediately went *yech*.
I did that because it's not easy to checkout your application in one easy hit.
With your layout you would need to know:
* you application svn url
* every module it depends on, and then its specific svn url - which is
a child of your applications svn url.
I dont think its good practice to mix svn locations together like this.

Either it needs to be
+-MyApplication/
  +-trunk
    +-pom.xml
    +-business
          +-business-api
          +-business-impl
  +-tags
  +-branches
  etc.....

or
+-MyApplication/
  +-trunk
    +-pom.xml
  +-tags
  +-branches
+-business
  +-trunk
  +-tags
  +-branches
+-business-api
  +-trunk
  +-tags
  +-branches
+-business-impl
  +-trunk
  +-tags
  +-branches
  etc.....

And I think the choice is made on whether there are logical groupings.
(The second option still requires multiple checkouts but at least they
are not nested)

Logically I think all these bits belong to MyAppliction so they should
live underneath this structure.
There is nothing in maven stopping you from having different versions
numbers for each module.
Generally a bump in a lower version number will have some affect at a
higher level - otherwise how will it get included.
+-MyApplication/
  +-trunk
    +-pom.xml (v1.3)
    +-business (v1.3)
          +-business-api (v1.1)
          +-business-impl (v1.3)
And it is MyAppliction/trunk/pom.xml in the dependencyManagement
section that defines *ALL* version details.
Every other pom in the dependency section leaves version not
specified, this way if it is not defined at the top level you get an
error and your modules can't have version classhes.

Now if there is a bug in business-impl, and you need to make changes,
its version would become v1.3.1.
But to use that anywhere you also need to bump business (v1.3.1) and
MyApplication (1.3.1) and make sure you update the
dependencyManagement section in the top level pom.xml.  These are all
co-dependent so it makes sense to group them together.

If these were independent libraries then I would make sure they had
their own SVN root.

I recommend re-reading the other books/articles at
http://maven.apache.org/articles.html and see if they offer any
advice.
I haven't read them for a while.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to