Hi,

I started making of list of things I'd like to remove in Maven 4.0.0, but I 
would like to start getting some agreement on what we can yank and this is the 
first concrete request. I would like to remove the ability for plugins to 
magically inject dependencies. Plugins can either declare their dependencies or 
instruct users to add dependencies to the plugins in their POMs. This weird 
logic for plugins to add dependencies dynamically is the cause of some 
extremely convoluted logic in the resolution code and I want to remove it.

The original issue is here: http://jira.codehaus.org/browse/MNG-4363

I encountered this when trying to hoist all the resolution logic into once 
place so that from our Aether provider resolution as it is done in the core can 
be done everywhere. Right now we have plugins like the assembly plugin, WAR 
plugin, dependency plugin that all do their own weird, inconsistent thing and 
when I tried to put it all in one place so that it can be analyzed, optimized 
and then executed this issue cropped up. We never should have allowed this in 
the first place but carried it over from 2.x for compatibilities sake. This 
might affect the code coverage tools but we can find a cleaner way. This logic 
is totally bizarro and needs to go.

If everyone agrees we can start systematically documenting what has been 
removed, as we have lost track of this accurately in the past. I'd like to make 
a 4.x branch in 4 weeks or so and this will be one of the first things I'd like 
to cut. It will be one of those radical simplifications that will start 
allowing people to get a better understanding of the core as I can put the 
resolution logic in one place as it is currently in many.

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
http://twitter.com/takari_io
---------------------------------------------------------

We all have problems. How we deal with them is a measure of our worth.

 -- Unknown









Reply via email to