On 4/08/10 1:41 AM, Steve Ebersole wrote:
Unfortunately the only real options I had found were to (a) look at
plugins that are similar to what you want to achieve to see what they do
and (b) bug folks here and on the IRC channel for information.
This is unfortunately true. We've been pretty much ignoring plugin
authors, in favour of build script authors, on the assumption that
plugin authors are 'advanced' users who are ok with digging out the
details for themselves.
After 0.9 is out, we want to put some effort into making plugin
authoring easier. There's lots of things we want to do:
- Allow you to use a .gradle file to implement the plugin, so that you
can use exactly the same DSL that you use to write build scripts. This
means anything we do to make things easier for build script authors also
makes things easier for plugin authors.
- Add a plugin dev plugin to automate the mechanical parts of plugin
development: things like packaging, publishing, integration testing,
documentation generation.
- Add a central plugin portal, to help you discover plugins that already
exist, so that you can help improve existing plugins rather than
starting them from scratch.
- Add more tools for writing unit and integration tests for your plugins
and tasks.
- Add support for common tasks in plugin development: declarative
validation, simpler convention mapping, classpath/classloader
management, DSL support (eg for properties of type File, Gradle could
automatically do the conversion via the files() method. For bean
properties, Gradle can add configure methods, and so on).
- Provide SPIs for common types of plugins: language plugins,
verification plugins, reporting plugins.
- Of course, better documentation and samples.
On the bright side, plugins in Gradle can be very powerful and imo it is
worth the effort to do the digging. I have written 2 plugins (one very
complex) so far and have been happy with the results.
On Tue, 2010-08-03 at 03:49 -0400, [email protected] wrote:
Hi,
I wanted to start on exploring how to write and share plugins for
gradle.
I know that the plugin class has to implement the Plugin interface -
is there any other configuration required ?
I just found chapter 38 which doesnt say anything explicitly about
that.
Can I just set up a "normal" project and use this as a plugin ? Is the
artifact from that any different from a "normal" project - and how or
where to "store" the plugin to be able to use it in any project ?
I found
http://blog.zenika.com/index.php?post/2009/06/27/Writing-custom-Gradle-plugins%2C-part-1
- but this is with 0.6 which is different i guess.
If there are more recent tutorials or posts about plugins, please send
them to me.
Cheers
Emerson
--
Adam Murdoch
Gradle Developer
http://www.gradle.org
CTO, Gradle Inc. - Gradle Training, Support, Consulting
http://www.gradle.biz
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email