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 time.  

> 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: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to