You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:19:58