我正在将我的 gradle 文件迁移到 kotlin dsl。我当前在 Groovy 中的设置是,我有一个
sonar.gradle
、一个 projectjacoco.gradle
和一个 modulegradle.gradle
,所有这些都包含在我的 build.gradle
中。我现在已将我的 build.gradle
迁移到 build.gradle.kts
。我知道我现在需要在 kotlin-dsl
中重写这些外部 gradle 文件并将它们包含在 buildSrc
文件夹结构中:
例如
buildSrc
|__src
|__main
|__kotlin
|__modulegradle.build.kts
然后将它们添加为插件。
我的问题是,如何访问这些 gradle 文件中的 android baseappmodule 扩展?例如
android.applicationVariants.forEach { variant ->
val variantName = variant.name.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.ENGLISH) else it.toString() }
val testTaskName = "test${variantName}UnitTest"
但是在
buildSrc
文件夹结构中的 gradle.kts 文件中
我按照这个视频创建了gradle插件,但是它没有给我我需要的功能。因此,如果有人可以帮助我,我希望能够从 buildSrc 文件夹结构中的 gradle 文件访问 android 应用程序/库变体,例如在
modulegradle.build.kts
非常感谢任何和所有帮助、提示、建议。
您需要在
buildSrc
build.gradle.kts
文件中导入包含 Android 应用程序或库插件的工件,才能在 buildSrc
中的脚本插件中使用它:
// buildSrc/build.gradle.kts
dependencies {
implementation("com.android.application:com.android.application.gradle.plugin:8.3.2")
}
或者对于库插件:
// buildSrc/build.gradle.kts
dependencies {
implementation("com.android.library:com.android.library.gradle.plugin:8.3.2")
}