Hi Jonas,

On 31/10/06, Jonas Olsson <[EMAIL PROTECTED]> wrote:
Perhaps the original question is wrongly put, IMHO?

If you have a shared library it should only be included ONCE in the end 
product, right?
And this inclusion should be of a specific version (to allow build 
re-production), right?

This is correct, although this process is the responsibility of
Maven's pluggable conflict resolution.  See MNG-612.

So all users of the shared library should list it as "provided" and the 
dependency will say
which version was used for that particular build (re-production, once again). 
The end product will
have a single "runtime" dependency of the shared library with the actual 
version to be included/used/provided.

The problem with this approach is that all dependencies will become
provided and it moves the conflict resolution to a manual process
situated in the top-level pom.  The kind of shared components I'm
referring to here would be ones like, say, plexus-utils.  Imagine that
a serious bug was discovered in a released version that many other
components depend on.  If all these components made up the
dependencies hierarchy for a top-level project, then the maintenance
becomes significant.

PROBLEM: Maven does not automatically dected version mis-matches with 
"provided" dependencies.

I do not end up with a working solution, but re-stated the issue arrives at a 
different core problem (one I have recently posted on this very mailing list).

I appreciate your suggestion, although I think it would be impractical
for large component hierarchies and neglects the potential power of
Maven.

Cheers,

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to