Steve Appling wrote:


Adam Murdoch wrote:

I've also wanted to do something similar, where I want to execute a bunch of code in the settings file to add dynamic stuff to the Settings object and Project objects. I didn't want the code in the settings file, because I wanted to reuse it across a bunch of builds. I ended up solving it with some copy-and-paste coding.

We have solved this problem (to some degree) for build files - you add your code to the buildSrc project or to an external project which you drag in via the classpath specified in the settings file, and then use a plugin (or whatever) to execute the code. I think the best solution is to generalise this approach, so that it will work for pretty much any type of script that Gradle executes (build files, settings files, user config files, ...).

One change that we've discussed in the past is to move the declaration of the build file classpath from the settings file to the build file itself. We could use this approach for pretty much any script, including the settings file. Part of this change would also be to generalise the buildSrc concept, to make it possible to declare one or more other projects to be included in the classpath of the script.

I think this would solve your problem nicely.


Perhaps a simpler approach that would meet my needs would be to make sure that the buildSrc project is built before settings.gradle is executed and then have the buildSrc in the classpath for settings.gradle. Is there a reason that settings.gradle is executed before buildSrc is built?


This is a potential solution. One implication of building buildSrc before evaluating the settings file is that you no longer have a place where you can specify things about the buildSrc project (locations, tasks to execute, configurations, etc).



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

   http://xircles.codehaus.org/manage_email



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

   http://xircles.codehaus.org/manage_email


Reply via email to