在buildSrc中访问Android应用程序变体/库变体

问题描述 投票:0回答:1

我正在将我的 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

非常感谢任何和所有帮助、提示、建议。

android kotlin gradle android-gradle-plugin gradle-kotlin-dsl
1个回答
0
投票

您需要在

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")
}
© www.soinside.com 2019 - 2024. All rights reserved.