Androidアプリケーションプロジェクトのビルド構成をGroovy(build.gradle) からKTS(build.gradle.kts) に移行することになりました。
ほとんどはビルド構成を Groovy から KTS に移行するの公式ドキュメントで移行することができました。
しかし、下記のbuild.gradleのsourceSetsの移行には時間がかかったため、記事として忘れないように残しておきます。
build.gradle
android {
flavorDimensions "situation", "type", "gender"
productFlavors {
pet {
dimension "situation"
}
stray {
dimension "situation"
}
dog {
dimension "type"
}
cat {
dimension "type"
}
male {
dimension "gender"
}
female {
dimension "gender"
}
}
sourceSets {
petDogMale.java.srcDirs += ["src/petDog/java"]
petDogMale.res.srcDirs += ["src/petDog/res"]
petDogFemale.java.srcDirs += ["src/petDog/java"]
petDogFemale.res.srcDirs += ["src/petDog/res"]
petCatMale.java.srcDirs += ["src/petCat/java"]
petCatMale.res.srcDirs += ["src/petCat/res"]
petCatFemale.java.srcDirs += ["src/petCat/java"]
petCatFemale.res.srcDirs += ["src/petCat/res"]
strayDogMale.java.srcDirs += ["src/strayDog/java"]
strayDogMale.res.srcDirs += ["src/strayDog/res"]
strayDogFemale.java.srcDirs += ["src/strayDog/java"]
strayDogFemale.res.srcDirs += ["src/strayDog/res"]
strayCatMale.java.srcDirs += ["src/strayCat/java"]
strayCatMale.res.srcDirs += ["src/strayCat/res"]
strayCatFemale.java.srcDirs += ["src/strayCat/java"]
strayCatFemale.res.srcDirs += ["src/strayCat/res"]
}
}
以下が移行後の内容です。
build.gradle.kts
android {
flavorDimensions+= listOf("situation", "type", "gender")
productFlavors {
create("pet") {
dimension = "situation"
}
create("stray") {
dimension = "situation"
}
create("dog") {
dimension = "type"
}
create("cat") {
dimension = "type"
}
create("male") {
dimension = "gender"
}
create("female") {
dimension = "gender"
}
}
applicationVariants.all {
sourceSets {
getByName(name) {
when {
name.startsWith("petDog") -> {
java.srcDirs("src/petDog/java")
res.srcDirs("src/petDog/res")
}
name.startsWith("petCat") -> {
java.srcDirs("src/petCat/java")
res.srcDirs("src/petCat/res")
}
name.startsWith("strayDog") -> {
java.srcDirs("src/strayDog/java")
res.srcDirs("src/strayDog/res")
}
name.startsWith("strayCat") -> {
java.srcDirs("src/strayCat/java")
res.srcDirs("src/strayCat/res")
}
}
}
}
}
}