<SNIP>
> Also, I've notiiced that the poms that are installed in the local repo
are
> not interpolated. My solution would rely on the installed poms having
been
> interpolated already.
That wouldn't be a good idea. One of the things I've been striving for
in the new maven code is to keep the model untainted by interpolation
and inheritance. The code we have doesn't require the interpolation and
I don't think you could make it work generally. For example if a POM
used an element that used a property that was interpolated and this
property varied from machine to machine you be in trouble. I'm not sure
how much this would affect dependencies but interpolation of installed
POMs is not something that will happen as I don't think it's a good
thing, or required.
> I don't think that the current build should need to
> interpolate a project for a dependency if it has no guarantee of having
> the right context. Am on the right path or not?
Not sure exactly what you mean. But I'm guessing that you mean that
dependencies generally would not be affected by interpolation and to
that I would probably say yes.
To clarify my assumptions:
[usual transitive dependency scenario]
I have project A dependent on project B which is dependent on project C
and project D.
I need for project A to pick up the dependencies (C and D) from project B.
Now, if project B's pom is stored in the local repo with no properties
resolved (i.e. the pom file is not the interpolated version) then project
A needs to have definitions for these properties. This would not be
possible unless the properties files are also made available in the local
repo, or if the repo version of the pom had been interpolated.
Also, if project B's pom states that it extends (for example)
${basedir}/../../project.xml, how does project A get access to the correct
parent definition?
The only solution I can see is for installed poms to be fully interpolated
and extended to include the parent info before being serialised to the
repo. I get the feeling that I'm missing something here, I'd appreciate it
if you could try to fill in the gaps. :)
> Give me a shout before I
> go too far with incorrect assumptions :)
If you want to do some transitive dependency stuff I can point you to
bits in the new code but the first thing we need is a little bit of code
that could package up an artifact with the POM and make a standard
little bundle that we can process for uploads to ibiblio.
I'd be more than happy to take on some of the effort - just drop me a line
with the details.
Cheers,
Mike
__________________________
Mike Melia
ThoughtWorks Inc.
http://www.thoughtworks.com
mobile: +61 0421 581 959