Kotlin 脚本找不到 Ktor CIO class
Kotlin script doesn't find Ktor CIO class
我正在尝试将 kotlin-main-kts 与 Ktor 客户端一起使用。
这是我在名为 ktor_tests.main.kts
:
的文件中的简单 Kotlin 脚本
@file:Repository("https://repo1.maven.org/maven2")
@file:DependsOn("io.ktor:ktor-client-core-jvm:1.5.3")
@file:DependsOn("io.ktor:ktor-client-cio:1.5.3")
import io.ktor.client.HttpClient
import io.ktor.client.engine.cio.CIO
println("Hello")
HttpClient(CIO).use {
println("In client scope.")
}
我运行它与
kotlinc -cp ~/.m2/repository/org/jetbrains/kotlin/kotlin-main-kts/1.4.21/kotlin-main-kts-1.4.21.jar -script ktor_tests.main.kts
输出为
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.ReflectionUtil to method java.util.ResourceBundle.setParent(java.util.ResourceBundle)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
error: unresolved reference: CIO (clean_location_group.main.kts:6:34)
error: unresolved reference: CIO (clean_location_group.main.kts:10:12)
clean_location_group.main.kts:6:34: error: unresolved reference: CIO
import io.ktor.client.engine.cio.CIO
^
clean_location_group.main.kts:10:12: error: unresolved reference: CIO
HttpClient(CIO).use {
^
我的Kotlin/JVM版本是:kotlinc-jvm 1.4.31 (JRE 11.0.10+9)
只需将 -jvm
后缀添加到 io.ktor:ktor-client-cio:1.5.3
依赖项,就像对 ktor-client-core
所做的那样:
@file:DependsOn("io.ktor:ktor-client-core-jvm:1.5.3")
@file:DependsOn("io.ktor:ktor-client-cio-jvm:1.5.3")
我正在尝试将 kotlin-main-kts 与 Ktor 客户端一起使用。
这是我在名为 ktor_tests.main.kts
:
@file:Repository("https://repo1.maven.org/maven2")
@file:DependsOn("io.ktor:ktor-client-core-jvm:1.5.3")
@file:DependsOn("io.ktor:ktor-client-cio:1.5.3")
import io.ktor.client.HttpClient
import io.ktor.client.engine.cio.CIO
println("Hello")
HttpClient(CIO).use {
println("In client scope.")
}
我运行它与
kotlinc -cp ~/.m2/repository/org/jetbrains/kotlin/kotlin-main-kts/1.4.21/kotlin-main-kts-1.4.21.jar -script ktor_tests.main.kts
输出为
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.ReflectionUtil to method java.util.ResourceBundle.setParent(java.util.ResourceBundle)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
error: unresolved reference: CIO (clean_location_group.main.kts:6:34)
error: unresolved reference: CIO (clean_location_group.main.kts:10:12)
clean_location_group.main.kts:6:34: error: unresolved reference: CIO
import io.ktor.client.engine.cio.CIO
^
clean_location_group.main.kts:10:12: error: unresolved reference: CIO
HttpClient(CIO).use {
^
我的Kotlin/JVM版本是:kotlinc-jvm 1.4.31 (JRE 11.0.10+9)
只需将 -jvm
后缀添加到 io.ktor:ktor-client-cio:1.5.3
依赖项,就像对 ktor-client-core
所做的那样:
@file:DependsOn("io.ktor:ktor-client-core-jvm:1.5.3")
@file:DependsOn("io.ktor:ktor-client-cio-jvm:1.5.3")