Kotlin:Kotlin脚本(.kts)不能使用常规代码?

问题描述 投票:10回答:4

在我的库的代码库中,我有这个包函数: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()
^

谁知道为什么会这样?谢谢。

kotlin scripting
4个回答
8
投票

这是Kotlin插件中的一个错误:https://youtrack.jetbrains.com/issue/KT-11618


5
投票

我建议使用holgerbrandl/kscript来管理脚本的依赖关系。


3
投票

自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


1
投票

替代方案是使用Kotlin REPL。

© www.soinside.com 2019 - 2024. All rights reserved.