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