Kotlin Gradle构建未解决对Kotlin-stdlib函数的引用问题

6
我有以下用于我的软件包的build.gradle文件。
buildscript {
    ext.kotlin_version = '1.2.21'

    repositories {
        jcenter()
        mavenCentral()
    }

    dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlin:kotlin-stdlib"
    }
}

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.2.21"
}

sourceSets {
    main.kotlin.srcDirs += "./"
}

在运行gradle compileKotlin时,我遇到了以下错误。
Starting a Gradle Daemon (subsequent builds will be faster)                                                                                                                                                           
e: /home/ishan/code/kotlin-server/server/ConnectionHandler.kt: (26, 35): Too many arguments for public constructor String() defined in kotlin.String                                                                  
e: /home/ishan/code/kotlin-server/server/ConnectionHandler.kt: (26, 38): Unresolved reference: trim                                                                                                                   
e: /home/ishan/code/kotlin-server/server/ConnectionHandler.kt: (30, 29): Unresolved reference: isEmpty                                                                                                                
e: /home/ishan/code/kotlin-server/server/ConnectionHandler.kt: (40, 9): Unresolved reference: print                                                                                                                   
e: /home/ishan/code/kotlin-server/server/ConnectionHandler.kt: (41, 9): Unresolved reference: print                                                                                                                   
e: /home/ishan/code/kotlin-server/server/ConnectionHandler.kt: (45, 9): Unresolved reference: println                                                                                                                 
e: /home/ishan/code/kotlin-server/server/HttpRequest.kt: (8, 19): Unresolved reference: HashMap                                                                                                                       
e: /home/ishan/code/kotlin-server/server/HttpRequest.kt: (16, 38): Unresolved reference: split                                                                                                                        
e: /home/ishan/code/kotlin-server/server/HttpResponse.kt: (22, 31): Unresolved reference: toByteArray                                                                                                                 
e: /home/ishan/code/kotlin-server/server/HttpStatusCodes.kt: (3, 22): Unresolved reference: HashMap                                                                                                                   
e: /home/ishan/code/kotlin-server/server/HttpStatusCodes.kt: (3, 45): Unresolved reference: hashMapOf                                                                                                                 
e: /home/ishan/code/kotlin-server/server/HttpStatusCodes.kt: (5, 9): Unresolved reference: to                                                                                                                         
e: /home/ishan/code/kotlin-server/server/HttpStatusCodes.kt: (6, 9): Unresolved reference: to                                                                                                                         
e: /home/ishan/code/kotlin-server/server/HttpStatusCodes.kt: (7, 9): Unresolved reference: to                                                                                                                         
e: /home/ishan/code/kotlin-server/server/HttpStatusCodes.kt: (8, 9): Unresolved reference: to

当我使用kotlinc -include-runtime命令编译此包时,它可以顺利编译,我甚至得到了一个可用的.jar文件。
我错过了什么吗?如果您想进一步查看,我还创建了一个GitHub问题,其中包含相关代码的链接。
2个回答

4

您需要添加这个依赖项:

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib"
}

在顶层位置,而不是buildscript内部:

buildscript {
    ext.kotlin_version = '1.2.21'

    repositories {
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.2.21"
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib"
}

sourceSets {
    main.kotlin.srcDirs += "./"
}

1
正如已经提到的那样,依赖项必须放在buildscript之外的dependencies块中。但是,您还必须指定要使用的stdlib版本:
buildscript{
    ...
}
dependencies{
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接