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]