On Friday, 22 February 2013, Jörg Schaible wrote: > Thomas Broyer wrote: > > > On Thu, Feb 21, 2013 at 4:22 PM, Jörg Schaible > > <joerg.schai...@scalaris.com <javascript:;>>wrote: > > > >> Hi Eric, > >> > >> Eric Kolotyluk wrote: > >> > >> > OK, I think I've got it. > >> > > >> > The answer depends more on what artifacts will always have the same > >> > version number, than how many artifacts there are. > >> > > >> > In a nutshell, one repository for the entire multi-module project is > >> > best, where all the artifacts keep their versions in sync with the > >> > parent pom. > >> > > >> > But, if you have to support artifacts with versions out of sync, then > >> > the out of sync versions need their own repositories. More work to > >> > manage, but sometimes necessary. > >> > >> What I always wonder here in combination with Git is, where do I keep my > >> "builder POMs" i.e. the pom that declares all the modules that includes > >> all these loosely coupled projects? In Subversion the location of > "trunk" > >> defines what shares the version, but I can keep those poms in the > trunk's > >> parent. I have nothing in Git. What do other people here? > >> > >> > > If you have several Git repos, it's because you have artifacts with > > different lifecycles, released on their own, at their own pace. Your > "app" > > will then simply *depend* on your "lib", just like any other Maven > > artifact; you don't need "builder POMs" as you call them. > > Oh, well, our setup has currently ~300 artifacts, most of them with > individual versions. So I can assure you, you'll *need* such (nested) > "builder poms", especially if you're working in a team environment. > > > In the event you want them anyway, then create a Git repo containing only > > that POM and using “git submodules” to bring the other repos in the tree. > > But you'll have to manage which revision of each remote repo you want to > > use, so there's absolutely no added value compared to simply depending on > > the artifacts, each built independently of the others. > > In Subversion we use external links to "wire" the individual projects of > these artifacts to the project with the "builder poms". The nice part is > then, that I can checkout simply one of these top level builder POMs to > work > e.g. on the head revision or the tip revisions of a branch. The external > links will ensure that I get automatically any required project. > > For Git you're telling me here that I would have to handle all those Git > repositories individually.
In *theory* you use git sub modules for this... But that can be more of a pain, or at least give people false ideas about how things work. Much like how if you peg the revision of your svn:external in such a builds pom directory would get you in to trouble. I tend to stear clear of git submodules as the feel half baked to me, but YMMV > - Jörg > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org <javascript:;> > For additional commands, e-mail: users-h...@maven.apache.org<javascript:;> > >