What we are calling a plugin right now in Gradle is something very basic and actually not really a plugin. Right now we use plugins at the configuration phase to configure a project object (add tasks, set properties, ...). A better name would be Configurer for what they are doing right now.

We want to have something more generic. The new notion of a plugin is any library which has one or more plugin classes. A plugin class is a class which offers a set of methods (or closures) that take a project object as an argument (optionally also additional arguments). Such a method might configure a project object like the current plugin's do (e.g. the JavaPlugin). But it might also take the project object just as an information source to do something, for example creating IDE files. Such plugin methods could also be also called via the command line. Or they could be called at execution time from a task. A plugin library can have dependencies, can be downloaded from a repository, etc... In particular such a plugin library can be build as a part of a multi-project build.

I'm looking forward to implementing this. This is just a rough outline. Any feedback is very welcome.

- Hans

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to