Hi all,
I'd like to make it easier for third party plugins to be integrated
into Gradle builds. Right now plugins either need to insist on an
internet connection in order to apply a script, or the contents of
that script needs to be inlined. "apply plugin: 'xxx'" is so much
cleaner than bulky build script dependencies configurations with funky
GitHub Ivy resolvers. Getting plugins added to maven central is enough
of an obstacle that no-one does it. So, these are the motivating pain
points for me.
This is the kind of DSL change I'm considering:
apply plugin: 'pluginname', githubid: 'githubid', version: '1.0'
The key here being that as a side-effect of the apply that it adds an
IvyResolver that will resolve to a URL pattern like this:
"http://cloud.github.com/downloads/[organisation]/[module]/[module]-
[revision].[ext]"
But only for an exact match on the dependency: organisation
"githubid", module "pluginname", and version "1.0". The other side
effect of course being an implicit: "buildscript { dependencies
{ classpath 'githubid:pluginname:1.0' } }".
What do you think? Would this be in line with the plans for Gradle?
Cheers,
Merlyn