Gradle子项目条件插件配置与gradle kotlin dsl

标签 gradle gradle-kotlin-dsl

如果存在某个插件,这就是我之前在 gradle 中配置子项目的方式:

subprojects {
    repositories {
        jcenter()
        google()
    }
    plugins.withType(com.android.build.gradle.LibraryPlugin) {
        android {
            compileSdkVersion 29
            ...
        }
    }
}

现在我不再使用 groovy 了。如何使用 gradle kotlin DSL 实现同样的效果?

这里最大的问题似乎是找到一种访问android扩展的方法,我似乎无法使用androidextensions.findByType(com.android.build. gradle.LibraryExtension::class.java).

最佳答案

我通过创建 precompiled script plugin 解决了这个问题,我将其应用于所有子项目。

buildSrc/build.gradle.kts

plugins {
    `kotlin-dsl`
}

dependencies {
    implementation("com.android.tools.build:gradle:4.1.2")
}

buildSrc/src/main/kotlin/android-libary.gradle.kts

plugins {
    id("com.android.library")
}

android {
    compileSdkVersion(29)
    ...
}

subProject/build.gradle.kts

plugins {
    `android-library`
}

关于Gradle子项目条件插件配置与gradle kotlin dsl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62506824/

相关文章:

gradle - 如何让我的自定义gradle任务运行?

android - 如何从android库中的bulid.gradle文件执行 "gradle publishToMavenLocal"

spring - Spring MultipartFile导致表单验证未映射

java - 如何替换字符串模板(Gradle)

gradle - Gradle:从根项目任务中的子项目中读取变量 block

java - org.w3c.dom 包可以从多个模块中访问 : <unnamed>, java.xml ~ 查找并排除依赖项

Gradle 6 settings.gradle.kts 属性问题

intellij-idea - gRPC UnsupportedAddressTypeException,但仅当与 shadowJar 打包时

android - 已应用 Hilt Android Gradle 插件但没有 com.google.dagger :hilt-android dependency was found

kotlin - 我无法部署到人工的Google Cloud