How to use alternate build.gradle with subprojects


(John 8F69A3) #1

I have a top-level project and a set of subprojects. I am trying to create a “build.gradle” that will just build all the subprojects. I tried creating a build.gradle with a different name (say build_subprojects.gradle) and then using the “-b” option, but that didn’t work. Any suggestions?

One suggestion I found by trawling the old forums is to specify the different buildScript name from within settings.gradle, but I couldn’t figure out how to do that.


(Sterling Greene) #2

You shouldn’t need a different build.gradle to do this. You just need another task. e.g.:

task buildSubprojects {
   group = 'build'
   description = 'Builds _only_ the subprojects'
   dependsOn subprojects.collect { it.path + ":build" }
}

Oh, and hi Wes.


(John 8F69A3) #3

Sterling!

I should have been more specific. I want to build the subprojects offline, so I was trying to build an “offline” version of build.gradle that doesn’t try to download gradle plugins or otherwise need to access the network. I was hoping to not have to refactor our build.gradle to work online/offline depending on a property, if that’s even possible.


(John 8F69A3) #4

Actually, modifying build.gradle to support both modes of operation (offline and online) based on a property was straightforward, and overall a much better solution.

If it’s possible, I’m still curious how to use the “-b” flag (or specify an alternate build.gradle file from within settings.gradle) when there are subprojects.