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

如何在Gradle KTS脚本中正确获取runtime classpath?

Gradle KTS 获取runtime classpath的正确写法

Groovy脚本支持隐式的Provider自动解包,所以你可以直接写sourceSets.main.runtimeClasspath获取运行时类路径,但KTS是强类型语言,不会做隐式解包,你遇到的报错就是因为sourceSets.main在KTS中是NamedDomainObjectProvider<SourceSet>类型,不是直接的SourceSet实例,无法直接访问runtimeClasspath属性。

正确的写法分以下几种常用场景:

  • 直接获取运行时类路径实例
val runtimeCp = sourceSets.main.get().runtimeClasspath

调用get()可以从Provider中拿到实际的SourceSet对象,之后就能正常访问runtimeClasspath属性。

  • 在自定义任务中打印运行时类路径
tasks.register<DefaultTask>("printRuntimeCp") {
    doLast {
        println("运行时类路径:${sourceSets.main.get().runtimeClasspath.asPath}")
    }
}
  • 声明自定义配置时继承runtimeClasspath
val customRuntime by configurations.creating {
    extendsFrom(configurations.runtimeClasspath.get())
}

如果你使用的是较新版本的Gradle,也可以用以下简化写法,效果完全一致:

val runtimeCp = sourceSets["main"].runtimeClasspath

内容的提问来源于stack exchange,提问作者Jason Lee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:36:03