Emmanuel Hugonnet <[EMAIL PROTECTED]> schrieb am 28.11.2006 
15:54:34:

> >> I have to edit the pom.xml of 
> >> maven-plugin-tools-java to set the version of qdox to 1.6.1 and then 
all 
> >> is fine.
> Hi,
> This is a temporary solution I use with a proximity proxy and an 
> overriding pom.xml but my question is more theorical than practical ;-)
> Why can't I override this dependency?

In the pom, you can tell maven how to compile and test *your* code. From 
maven's point of view, the maven-plugin-tools-java is "external" and 
outside the scope of the dependencies in your pom.xml.

Imagine: A plugin depends on some class in qdox 1.5 which is deprecated 
and was removed in qdox 1.6. Now, your project says "I depend on qdox 
1.6". If maven took this into account when loading plugins, the plugin 
wouldn't work and there was no way to make it work without breaking the 
build of your project. A deadlock.

Therefore, maven carefully separates the classpaths from every plugin from 
your project. You can have plugin A which needs qdox 1.5 and plugin B 
which needs qdox 2.0 in the *same* build and include qdox 1.6 in your 
project and it will work.

A solution might be to extend maven's xml merge mechanism. If you could 
add "patches" to pom.xml and settings.xml//profile, then it would be 
possible to override the values in other POM's (for example, to patch the 
POM of maven-plugin-tools-java to depend on a different version of qdox).

Here, I must ask how economical that would be. As it is, the solution is 
simple (at least when you're used at how simple it is to setup and compile 
maven projects) and the question is how useful such a patch mechanism will 
be (ie. how often can you fix your problems with it?).

Regards,

-- 
Aaron Digulla


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

Reply via email to