Is it possible for a module to be dependent on a group of modules?

If I have a project structure like this: /root ->/application/src/main/java/… ->/extensions ->->/ext1/src/main/java/… ->->/ext2/src/main/java/…

How do I manage the inclusions and dependencies? Is it possible for :application to be dependent on :extensions and for :extensions to manage its children by itself?

Yes, I think I simple technique is to create a set of configurations in your ‘’‘extensions/’’’ project and then you can reference the configurations by name in the ‘’‘applications/’’’ projects. For example:

configurations.create 'extSetA'
configurations.create 'extSetB'
  dependencies {
   extSetA project(":extensions:ext1")
   extSetA project(":extensions:ext2")
     extSetB project(":extensions:ext1")
   extSetB project(":extnesions:ext3")
}

From your application projects …

dependencies {
   compile project(path:":extensions", configuration:"extSetA")
}

Another way would be to create a global list that includes all of the desired extensions.

ext.extensionSetA = [ project(":extensions:ext1"), project(":extesions:ext2") ]
ext.extensionSetB = [ project(":extensions:ext1"), project("extensions:ext3") ]
  dependencies {
    compile extensionSetA
}