我正在嘗試使用 gradle 配置 ktor 服務器,但我遇到了應用程式配置問題,我無法理解發生了什么,因為根據我在網上找到的檔案和其他示例,我沒有做錯任何事情。
這是我的 build.gradle.kts:
plugins {
kotlin("jvm") version "1.7.0"
kotlin("plugin.serialization") version "1.7.0"
application {
mainClass.set("ApplicationKt")
}
}
repositories {
mavenCentral()
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "17"
}
我得到的錯誤是:
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline operator fun <T : Any, C : NamedDomainObjectContainer<TypeVariable(T)>> TypeVariable(C).invoke(configuration: Action<NamedDomainObjectContainerScope<TypeVariable(T)>>): TypeVariable(C) defined in org.gradle.kotlin.dsl
public operator fun <T> Closure<TypeVariable(T)>.invoke(): TypeVariable(T) defined in org.gradle.kotlin.dsl
public operator fun <T> Closure<TypeVariable(T)>.invoke(x: Any?): TypeVariable(T) defined in org.gradle.kotlin.dsl
public operator fun <T> Closure<TypeVariable(T)>.invoke(vararg xs: Any?): TypeVariable(T) defined in org.gradle.kotlin.dsl
public operator fun <V> Callable<TypeVariable(V)>.invoke(): TypeVariable(V) defined in org.gradle.kotlin.dsl
public operator fun <T, R> DeepRecursiveFunction<TypeVariable(T), TypeVariable(R)>.invoke(value: TypeVariable(T)): TypeVariable(R) defined in kotlin
public operator fun <T> Action<in TypeVariable(T)>.invoke(target: TypeVariable(T)): Unit defined in org.gradle.kotlin.dsl
public operator fun <T> NamedDomainObjectProvider<TypeVariable(T)>.invoke(action: TypeVariable(T).() -> Unit): Unit defined in org.gradle.kotlin.dsl
public operator fun ArtifactHandler.invoke(configuration: ArtifactHandlerScope.() -> Unit): Unit defined in org.gradle.kotlin.dsl
public operator fun DependencyConstraintHandler.invoke(configuration: DependencyConstraintHandlerScope.() -> Unit): Unit defined in org.gradle.kotlin.dsl
public inline operator fun <T> ExtraPropertiesExtension.invoke(initialValueProvider: () -> TypeVariable(T)): InitialValueExtraPropertyDelegateProvider<TypeVariable(T)> defined in org.gradle.kotlin.dsl
public operator fun <T> ExtraPropertiesExtension.invoke(initialValue: TypeVariable(T)): InitialValueExtraPropertyDelegateProvider<TypeVariable(T)> defined in org.gradle.kotlin.dsl
public operator fun <T> Spec<TypeVariable(T)>.invoke(arg: TypeVariable(T)): Boolean defined in org.gradle.kotlin.dsl
public inline operator fun TaskContainer.invoke(configuration: TaskContainerScope.() -> Unit): TaskContainer defined in org.gradle.kotlin.dsl
另外,如果我指定沒有任何正文的應用程式插件,那也沒關系。但是配置主體 IntelliJ 無法匯入插件......不確定這是否是 IntelliJ 的問題,但我想值得一提。
任何幫助表示贊賞。
uj5u.com熱心網友回復:
您正在嘗試在宣告/應用插件的同時配置插件。你應該有:
plugins {
kotlin("jvm") version "1.7.0"
kotlin("plugin.serialization") version "1.7.0"
application // apply plugin
}
// configure plugin
application {
mainClass.set("ApplicationKt")
}
repositories {
mavenCentral()
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "17"
}
在您重繪 Gradle 專案之前,IntelliJ 可能無法識別(重新:語法突出顯示、型別等)“配置插件”部分。
uj5u.com熱心網友回復:
您應該在塊之外撰寫應用程式插件配置plugins:
plugins {
...
application
}
...
application {
mainClass.set("com.example.MainKt")
}
請參閱官方檔案中的示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503848.html
上一篇:在gradlebuild之前在build.gradle.kts上運行Checkstyle并在出現問題時使構建失敗
