Hi,

if we are talking about immutable classpath I agree. But there's something else which needs to be improved. Let me describe it with the maven-javadoc-plugin, but there are more plugins suffering the same problem. You must be able to specify doclettags artifact. There are dependencies, but they are not added to the classpath. These jars are added to a different argument of the javadoc executable.

I see two solutions:
- mark these fields in the plugin as being dependencies, which must be resolved. - add a custom field to the plugin-dependency in the pom.xml, so the plugin knows which dependencies are used for which purpose.

With both solutions it should also be possible for the maven-release-plugin to verify all used dependencies, which is impossible right now.

thanks,

Robert


Op Sun, 06 Apr 2014 15:55:07 +0200 schreef Jason van Zyl <[email protected]>:

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









---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to