On Oct 1, 2010, at 11:25 AM, Phillip Hellewell wrote: > On Fri, Oct 1, 2010 at 12:02 PM, David Jencks <[email protected]> wrote: >>> Cool, that's what I was hoping to hear. Even if I just had a plugin >>> that would scan all the dependencies and print out their versions, >>> that would suffice and I could do the checking out myself. >> >> does mvn dependency:tree do what you want? > > Yes, it looks like that will work! Actually, a dependency:resolve > will work too, maybe even easier. Will dependency:resolve guarantee > to print them out in an order such that each artifact comes after any > artifacts it depends on? > >> I still don't understand exactly what you are trying to do, but it looks to >> me like it might be like mvn scm:bootstrap >> >> http://maven.apache.org/scm/plugins/bootstrap-mojo.html > > Cool, thanks. I looked at it real quick and it looks like it can be > used to checkout and build a project for you, but it doesn't look like > it will does anything fancy like checking out the dependencies for > you. > >> It seems to me that the scope of what you want could be hard to define. >> Many non-tiny projects come in multi module trees that are expected to be >> checked out at some root directory which is not the same as the scm root of >> any module you will be using. So figuring out how much you want to check >> out automatically might be a challenge. And if you really only want a >> particular submodule you'll have to do something to calculate the scm >> address from the chain of parent poms. (of course you'll need to follow the >> parents until you find an scm tag anyway). > > We are planning to make things consistent so that this automation will > be possible, e.g.: > 1. Each "component" will live in a specific place in SVN (e.g., > /components/COMPNAME).
How does this relate to your release process? i.e. where are the "trunk", "tags", and "branches"? Is each component going to be released separately, or all at once? > 2. Each "component" will have a single pom.xml. No multi-modules. > 3. Before deploying, the SVN tag name will be appended to the artifact > version number. I think that could be tricky, but I'm not an expert on this. > 4. The SVN base url will be defined globally in the user's settings.xml > > So I'll know exactly what to check out for that component just from > its name and version, which I can get from dependency:resolve. if you release each component separately, each components pom needs to have an accurate <scm> tag. Unless you have gigabytes of source code I would think you are making extra work for everyone here. why not just ask all your developers to check out all of /components from svn and build the parts they want? Disk space is usually cheaper and more reliable than anyones time :-) If you want to automatically build dependency chains of modules you can put a parent pom in components that lists all the individual components as modules and use the really great maven options described here http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-advanced-reactor-options/ I haven't tried it but I think this might work even if each component does not use the aggregator pom as its parent. david jencks > > Phillip > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
