According to my own tests, with Maven 3 the parent pom is resolved according to the following algorithm:
IF relativePath != "" THEN IF pom is found at relativePath location and GAV match THEN use this pom as parent ELSE log a warning and useRepo=true ENDIF ELSE useRepo=true ENDIF Maven 3 will never use the pom from the reactor, and the reactor order will not reorder parent before children. See https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-ParentPOMResolution Please correct me if I am wrong. Regards, Julien >________________________________ >De : Stephen Connolly <[email protected]> >À : Maven Users List <[email protected]> >Envoyé le : Lundi 22 Août 2011 16h16 >Objet : Re: Reactor doesn't build parent poms first? > >On 22 August 2011 14:37, Laird Nelson <[email protected]> wrote: >> On Mon, Aug 22, 2011 at 7:48 AM, Stephen Connolly < >> [email protected]> wrote: >> >>> > Should have mentioned I was talking about SNAPSHOTs; sorry. Does that >>> > change the picture? >>> >>> Nope. >> >> >> Just to be clear, then: >> >> You're saying that in a multimodule project, where my root >> pom.xmlaggregates several submodules, and where one of those >> submodules is a >> pom.xml that serves as a parent to some other submodules--you're saying that >> even when all these things are declared as version 1.0-SNAPSHOT, Maven will >> use the repo copy of the parent, even though the very reactor plan it is >> executing tells it that it should be building the most recent copy? >> >> Or, using the same letters that I used in my prior message's example, if A, >> B and C are all 1.0-SNAPSHOT, and the version of B deployed to the >> repository is 75 days old, Maven will begin a full build from the root (A) >> by first scanning the module paths to see what projects are there (A, B and >> C), and because C references B as a parent, the 75-day-old copy of B will be >> retrieved from the (local) repo rather than Maven realizing that B is in the >> reactor plan as a module in its own right? >> > >No I am saying that if C references B 0.9-SNAPSHOT as its parent then >the reactor will not require B 1.0-SNAPSHOT (from the reactor) to be >built before C 1.0-SNAPSHOT. > >If the parent GAV is present in the reactor, then that is what will be used >if the parent GA is present in the reactor only with a different V, >then you might be lucky and see a warning if the relativePath points >to it, otherwise Maven will not see an issue as long as the requested >GAV is in a repo > >> Best, >> Laird >> >> -- >> http://about.me/lairdnelson >> > >--------------------------------------------------------------------- >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]
