maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Topping <>
Subject Re: Continuous Delivery and Maven
Date Mon, 08 Nov 2010 18:22:25 GMT

On Nov 8, 2010, at 12:33 PM, Yanko, Curtis wrote:

> Why is that not guaranteed to exist or be reliable?

A Maven repository is a cache, not a reliable persistent store.  *Yours* may be reliable,
but the artifacts that are built to it should not contain metadata that, if lost, would make
rebuilding that (or another artifact) exceptionally difficult.  

> And at the
> moment I build A the build log will tell me exactly which SNAPSHOT we
> received.

So you want to keep build logs around indefinitely to solve this problem?  That sounds suboptimal.
 There's no schema for log output, so pulling the values out by machine is unreliable over

> I can crack it open and see exactly which SCC
> revision was used and which path within the SCC it came from (because we
> bake that info into everything we build).

But if A depends on B and C and the SCC revisions of B and C are not recorded in A, then there
isn't a way to reliably build A.  

The other side of this question is where to store the revision IDs for B and C.  In the manifest?
 Maven can't use that information.  Possibly in the POM as an additional qualifier in the
respective <dependency> element of the POM that is stored in the artifact would make
more sense, but then Maven needs to be changed with questionable semantics (what happens if
there is an impossible combination of <version> and this revision ID qualifier?)

This is why I was considering a repository manager plugin.  It's site specific, and if it
generated throwaway synthetic POMs for reproducing old builds, nothing has to be changed in
Maven itself (the repository manager can call the artifacts anything it wants to properly
identify the exact versions of B and C, likely returning synthetic POMs for them too).

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message