This has been fixed. The problem was that the MetadataSource was pulling
back cached models that had not been properly interpolated.

Removing the caching was not sufficient, as the main purpose of the
cache is to ensure files discovered inside the reactor are re-used
instead of their repository counterparts.

I took the opportunity to do some refactoring, pushing the artifact
resolution into the project builder, and generally clean up in there
without changing the interface or breaking the tests. I found a lot of
stuff dropping off as it got simpler, and I have a feeling there is
still more to do which has been commented in there. Generally, it
doesn't appear there is a need to actually construct project elements
for the parents - just models - during the assembly. But that's a bit
more risky so I've postponed it.

- Brett

John Casey wrote:

>I just uncovered a problem which is surely present in the current binary
>bundles of m2. It has to do with projects that depend on poms which
>utilize interpolation or managed dependencies...
>
>When such a project exists, the first plugin that resolves dependencies
>will retrieve the correct and complete POM for each dependency, with
>interpolation and managed deps included. HOWEVER, this first resolution
>process will result in the models being incorrectly cached in the
>project builder (cached before they are interpolated or have defaults
>injected), which means that each subsequent plugin that uses a cached
>model which utilizes these features will get a "raw" version of the
>model; that is, with none of these higher-level features included.
>
>As an interim solution, I have disabled cached-model retrieval from the
>MavenMetadataSource. While this may slow m2 down a bit (since it will
>have to build the models every time), it will at least provide correct
>results until we have the time to address this error properly.
>
>We need to generate new binary bundles for m2 as a result of these changes.
>
>Regards,
>
>john
>
>
>  
>

Reply via email to