如何用Kotlin函数结合libs.versions.toml声明Gradle插件?
关于使用libs.versions.toml声明Kotlin JVM插件的问题
背景信息
常规声明Kotlin JVM插件的方式:
kotlin("jvm") version "1.7.22"
当前已在libs.versions.toml中配置:
[plugins] kotlin-jvm = { module = "jvm", version.ref = "kotlin" }
已知一种可行实现方式:
// libs.versions.toml kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
// build.gradle.kts alias(libs.plugins.kotlin.jvm)
想了解两个问题:
- 如何通过Kotlin函数(即类似
kotlin("jvm")的形式)结合版本目录声明插件? - 如何通过
libs...获取插件ID?
解决方案
1. 通过Kotlin函数结合版本目录声明插件
首先修正libs.versions.toml的配置,原配置里的module字段不适用于该场景,需先在[versions]块定义Kotlin版本,再配置插件:
# libs.versions.toml [versions] kotlin = "1.7.22" [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
之后在build.gradle.kts中,即可用Kotlin函数形式结合版本目录的版本引用声明插件:
kotlin("jvm") version libs.versions.kotlin.get()
这种方式既保留了kotlin("jvm")的函数调用形式,又通过版本目录统一管理了版本号。
2. 通过libs获取插件ID
只要在libs.versions.toml中正确配置了插件的id字段,就能直接通过libs.plugins.kotlin.jvm.get().pluginId获取插件ID,示例代码:
// build.gradle.kts println("Kotlin JVM插件ID:${libs.plugins.kotlin.jvm.get().pluginId}")
输出结果为org.jetbrains.kotlin.jvm。
如果需要用ID间接声明插件,也可以这么写(不过不如alias简洁):
plugins { id(libs.plugins.kotlin.jvm.get().pluginId) version libs.versions.kotlin.get() }
内容的提问来源于stack exchange,提问作者SageJustus
相关产品推荐
相关产品推荐

