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]
