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/目录。
- 你可以使用
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
- 您可以创建自定义 Gradle 插件来配置项目。
Here is a great example with a bit more details and an example 显示实现的 repo。
对于我们的多模块 Android 项目,我们将 Kotlin DSL 用于我们的项目 build.gradle.kts、应用程序模块 build.gradle.kts、settings.gradle.kts。然而,我们想将我们的库模块 .gradle 文件转换为 Kotlin DSL。我们 运行 遇到的问题是我们在应用脚本时得到 Unresolved reference: android
。
我没有看到任何关于 Android 库的共享 gradle.kts 文件可应用于 Android 库模块的明确示例。
有两种方法,一种比另一种更复杂。
Gradle 脚本使用动态解析,这就是为什么您可以将它们放在任何目录中,然后将它们应用到您的构建文件中。
有两种方法可以解决这个问题,都涉及到buildSrc/目录。
- 你可以使用
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
- 您可以创建自定义 Gradle 插件来配置项目。
Here is a great example with a bit more details and an example 显示实现的 repo。