Kotlin DSL Android 库的共享文件

Shared file for Kotlin DSL Android Libraries

对于我们的多模块 Android 项目,我们将 Kotlin DSL 用于我们的项目 build.gradle.kts、应用程序模块 build.gradle.kts、settings.gradle.kts。然而,我们想将我们的库模块 .gradle 文件转换为 Kotlin DSL。我们 运行 遇到的问题是我们在应用脚本时得到 Unresolved reference: android

我没有看到任何关于 Android 库的共享 gradle.kts 文件可应用于 Android 库模块的明确示例。

有两种方法,一种比另一种更复杂。

Gradle 脚本使用动态解析,这就是为什么您可以将它们放在任何目录中,然后将它们应用到您的构建文件中。

有两种方法可以解决这个问题,都涉及到buildSrc/目录。

  1. 你可以使用 kotlin-dsl-precompiled-script-plugins.

A precompiled script plugin is a Kotlin script compiled as part of a regular Kotlin source-set and distributed in the usual way, as java class files packaged in some library, meant to be consumed as a binary Gradle plugin.

https://github.com/gradle/kotlin-dsl-samples/tree/master/samples/precompiled-script-plugin

  1. 您可以创建自定义 Gradle 插件来配置项目。

Here is a great example with a bit more details and an example 显示实现的 repo。