在我的图书馆代码库中,我有这个包函数:fun sayHello() = println("Hello there!")
该函数在包org.jire.pomade
我想在 .kts 文件中使用此功能,如下所示:sayHello()
不幸的是,我似乎无法将代码与Kotlin自己的stdlib分开来在Kotlin脚本文件中工作。
我的整个剧本:
import org.jire.pomade.sayHello
sayHello()
运行脚本的结果:
pomade.kts:1:12: error: unresolved reference: jire
import org.jire.pomade.sayHello
^
pomade.kts:3:1: error: unresolved reference: sayHello
sayHello()
^
有人知道为什么会这样吗?感谢。
答案 0 :(得分:8)
这是Kotlin插件中的一个错误:https://youtrack.jetbrains.com/issue/KT-11618
答案 1 :(得分:5)
我建议使用holgerbrandl/kscript来管理脚本的依赖关系。
答案 2 :(得分:2)
从1.3开始,在Kotlin脚本中提供了对Maven导入的实验性支持。
看看https://blog.jetbrains.com/kotlin/2018/09/kotlin-1-3-rc-is-here-migrate-your-coroutines/#scripting:
@file:Repository("https://jcenter.bintray.com")
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.11")
import kotlinx.html.*
import kotlinx.html.stream.*
print(createHTML().html {
body {
h1 { +"Hello, World!" }
}
})
这里是KEEP:https://github.com/Kotlin/KEEP/blob/master/proposals/scripting-support.md。
答案 3 :(得分:0)
替代方案是使用Kotlin REPL。