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


Reply via email to