How to define common android properties for all modules using gradle

android, gradle

Solution

You could create a `build.gradle` at the root of your project (i.e. the folder that contains all your modules), and use it to configure your rootProject.

For instance, if you have:

MyApp
  - Module1/
      - build.gradle
  - Module2/
      - build.gradle
  - settings.gradle

You can add a build.gradle next to `settings.gradle`.

In the example above you actually have 3 Gradle projects: Module1, Module2 and the rootProject.

So inside this `build.gradle`, you could do:

// use the ext object to add any properties to the project
project.ext {
   compileSdkVersion = 18
}

Then in your modules, you can do:

android {
    // here we reference the root project with the "rootProject" object.
    compileSdkVersion rootProject.ext.compileSdkVersion
}

Problem

I create a simple project in AndroidStudio with a few modules. Each module's gradle script contains the following code: ``` android { compileSdkVersion 18 buildToolsVersion "18.1.1" defaultConfig { minSdkVersion 7 targetSdkVersion 18 } } ``` How can I move this code to the main build.gradle script (project's script)? This code is common for all the submodules.

Original source

Related problems