I have been investigating build tools for a very large project (~44,000
files and >50 modules) and have been very impressed with Gradle so far.
The potential flexibility of the system provides a great opportunity to
help us manage the complexity of our build.
I want to be able to extend the DSL syntax of Gradle for use in our
build system without complicating the core of Gradle. For instance, we
currently build multiple products from an overlapping set of modules.
We can't use a single settings.gradle file to specify all products, but
want to use our own DSL format to specify the various modules that make
up each product.
I made an initial implementation of this, but ran into some issues. I
wanted to add new methods to the Project interface as well as introduce
some new interfaces of my own that could be used in my build.gradle
files. I can add some of this functionality in settings.gradle using
expando methods, but only if my new features are all defined in
settings.gradle. I would prefer to put them in the buildSrc special
project, but it is not available when settings.gradle is executed. If I
wait to inject these features in my main build.gradle, it is too late
because the projects have already been instantiated.
I would like gradle to support a new script (perhaps extend.gradle) in
the buildSrc module that would be run with the classloader that will be
used for all the build.gradles. This needs to be executed before all the
build.gradles so that all the extensions can already be in place.
I have an implementation of this and can submit it as a patch, but would
like some feedback on this concept first.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email