⚙️

build.gradle.ktsの色々なところでdefaultConfigを書き換える

2020/09/21に公開

ちょうどRobolectricでどのSDKを使うかで引っかかり、defaultConfigの値を書き換えたくなった際、どこまで書き換えできるかを手持ちのソースをベースにやってみました。
Gradle Kotlin DSLだと補完が効いてとても楽で良いですね。

android {
  defaultConfig {
    targetSdkVersion(30)
  }
  buildTypes {
    getByName("release") {
      defaultConfig {
        targetSdkVersion(30)
      }
    }
  }
  productFlavors {
    create("minApi24") {
      defaultConfig {
        targetSdkVersion(30)
      }
    }
  }
  variantFilter {
    val names = flavors.map { name }
    // minApi24-release の variant だけ書き換え
    if (names.containsAll(listOf("minApi24", "release"))) {
      defaultConfig {
        targetSdkVersion(30)
      }
    }
  }
  testOptions {
    // Unit test と Instrumented test 両方書き換え
    defaultConfig {
      targetSdkVersion(30)
    }
    // Unit test のみ書き換え
    unitTests {
      defaultConfig {
        targetSdkVersion(30)
      }
    }
  }
}

Discussion