Brian Fox wrote:

Such a project would be built after its child modules.

So in essence we are relying on the resolution of this artifact (the
parent) from the reactor and not from the local repo?

Just to make sure we have the same understanding of "artifact" here. For some project, we have its POM file itself and zero or more archives, produced during the build, that get installed/deployed to the repos. The POM file is potentially required by other projects for
a) inheritance
b) import/mixin
c) dependency/metadata collection

For inheritance, the POM file is either picked from the <relativePath> or from the repos. Under the assumption that <relativePath> is properly set, something we want to promote I believe, this logic is independent from the build order.

For importing and metadata retrieval, the POM file is picked from the pool of MavenProject instances in the reactor or from the repos. This is also independent from the build order.

So to summarize, all requests to resolve the aggregator/parent POM can be satisfied, regardless of the build order we decide upon. The only artifacts that would be affected by building aggregator projects after their child modules would be those archives that get produced by the aggregator POM, i.e. the case you pointed out below.

The only
potential downside is if people rely on this project doing or
producing something consumed by the children.

Yes, those builds would need to be restructed by moving the production of this something into a child module of the aggregator POM.

Given that we all seem to agree upon that aggregation in 2.x is not what we would like to have, I wasn't eager to simply reproduce a buggy concept 1:1 in 3.x just for the sake of deprecating it. Instead, I was trying to sketch a vision of what it should be like and how the existing aggregator plugins could fit into it such that we can reuse as many of them as possible. For instance, I think the proposal solves MASSEMBLY-94 without the need to update the Assembly Plugin.


Benjamin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to