build.gradle.kts のサンプルとかを見てると
buildScript { repositories { google() jcenter() } } allprojects { repositories { google() jcenter() } }
のように書いてるのを良く見るけど repositories に指定するものは一箇所でまとめて書いておきたい。
従来の build.gradle だと
buildScript { ext { repos = { google() jcenter() } } repositories repos } allprojects { repositories repos }
のように書けた。
build.gradle.kts の場合は
buildScript { val repos by extra { fun RepositoryHandler.() { google() jcenter() } } repositories(repos) } allprojects { val repos: RepositoryHandler.() -> Unit by project repositories(repos) }
とすればよい。
ここで大事なのが
val repos: RepositoryHandler.() -> Unit by project
としてるとこで、
val repos: RepositoryHandler.() -> Unit by extra
とするとダメだった。
rootProject.extra["repos"] となるので by project でやらないといけない。