Hi Adam, thanks for these ideas. If I understand correctly, these seem to depend on changing the current directory to pick up a project that specifies the projects to run. What I'm after is being able to run different subprojects within a Hudson CI build, just by changing a property. Is there an idiom to support that approach? Cheers Dan
On 13 January 2011 21:45, Adam Murdoch <[email protected]> wrote: > > On 12/01/2011, at 8:48 PM, Dan Haywood wrote: > > As I understand it, settings.gradle must list all projects in a > multi-project build. > > What I'd like is something like a Maven profile so that I can use an env > var to run different subsets of this multiproject. > > eg, in settings.gradle: > projectA1 > projectA2 > projectB1 > projectB2 > > so that gradle build -D projectGroup=A (say) would just build projectA1, > projectA2. > > Is there a common idiom for this? > > > I think there's a few approaches you could take: > > 1. Have code in settings.gradle to conditionally include the projects you > want to build. > > 2. Keep all the projects in settings.gradle, and arrange them in a > hierarchy to group them. Then, in the grouping projects, you can do > something like: > > task clean { dependsOn subprojects.clean } > task assemble { dependsOn subprojects.assemble } > > This way, you can run, say, 'gradle someGroup:assemble' to assemble all the > subprojects of 'someGroup' > > 3. Similar to 2. above, but use sibling projects to do the grouping > instead. In the grouping projects, you can do something like: > > def projects = [project(':projectA'), project(':projectB')] > > task clean { dependsOn projects.clean } > > etc. > > Personally, I would go with either option 2, or 3, depending on the meaning > of the groups that you have. > > For options 2 and 3, you can package up the logic into a plugin. In fact, > we do plan to add an 'aggregate project' plugin at some point, which will > solve this kind of problem. > > > -- > Adam Murdoch > Gradle Developer > http://www.gradle.org > CTO, Gradle Inc. - Gradle Training, Support, Consulting > http://www.gradle.biz > >
