I did some investigation and I *think* I know whats going on with this regression. If I'm right, the way it used to work is probably not desireable anyway, so it would be good to discuss what to do about it...
What I think is going on: GROOVY CLASSPATH INFERENCE - The GroovyPlugin sets the classpath of the GroovyDoc task to the compile classpath of the main sourceset - The GroovyBasePlugin sets the groovyClasspath by using GroovyRuntime to infer it from the (compile) classpath - The inference mechanism looks for a groovy jar on the classpath - If it finds groovy-all.jar it just uses that jar. - If it finds a different groovy jar it creates a new configuration and adds the jar as a dependency (I am not sure what this achieves over just using the jar) - It would make more sense to me if it added a 'tool' version of the jar instead (in fact the comments say it *does* do this) - This behaviour seems to have been changed by Adam in commit 818e0b9 - I suspect this commit introduced the regression HOWEVER... - The exception reported in the forums does not seem to occur when executing the groovydoc tool itself, but when instantiating a gradle BasicAntBuilder (in order to define and execute an ant groovydoc task) - This is because BasicAntBuilder inherits from groovy.util.AntBuilder - This is loaded by a classloader that by default has a classpath containing classPathRegistry.getClassPath("GROOVY"), but this appears to be replaced by AntGroovyDoc with the groovyClasspath from the GroovyDoc task - This all leads me to suspect that this used to work (prior to Adam's commit) by picking up groovy.util.AntBuilder from the users compile configuration rather than from the gradle installation - That doesn't seem desireable...