maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Dependencies, modules, and dependency plugin
Date Fri, 01 Oct 2010 19:14:22 GMT

On Oct 1, 2010, at 11:25 AM, Phillip Hellewell wrote:

> On Fri, Oct 1, 2010 at 12:02 PM, David Jencks <david_jencks@yahoo.com> 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: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Mime
View raw message