【问题标题】:Kotlin compiles the project properly on local machine but through Jenkins it throws exceptionKotlin 在本地机器上正确编译项目,但通过 Jenkins 它抛出异常
【发布时间】:2019-03-29 08:50:56
【问题描述】:

我有一个库,其中有一个伴随对象值,如下所示

companion object {
    const val QUEUE_CLUSTER_ID = "Commands"
}

我的项目的一类依赖于这个库,它使用 lib 的 QUEUE_CLUSTER_ID val,如下所示

data class CreateCatalogItemCommand(
    @JsonProperty("styleVariant") val styleVariant: StyleVariant?) : Commandable() {

    companion object {
        const val QUEUE_ID =  QUEUE_CLUSTER_ID.plus("CreateCatalogItemCommand")
    }
}

问题是 kotlin 在我的机器上正确编译了项目,但是通过 jenkins 我得到了以下错误。当 QUEUE_ID 设置为普通字符串时,错误消失。

[INFO] --- kotlin-maven-plugin:1.3.21:compile (compile) @ catalog- 
service ---
[INFO] Applied plugin: 'spring'
[ERROR] /var/lib/jenkins/workspace/Catalog-Service/src/main/kotlin/com/mg/catalog/command/CreateCatalogItemCommand.kt: (11, 31) Unresolved reference: QUEUE_CLUSTER_ID
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.864s 
[INFO] Finished at: Fri Mar 29 08:40:37 UTC 2019
[INFO] Final Memory: 74M/713M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven- 
plugin:1.3.21:compile (compile) on project catalog-service: Compilation 
failure
[ERROR] /var/lib/jenkins/workspace/Catalog-Service/src/main/kotlin/com/mg/catalog/command/CreateCatalogItemCommand.kt: 
[11,31] Unresolved reference: QUEUE_CLUSTER_ID
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to 
execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.3.21:compile 
(compile) on project catalog-service: Compilation failure
/var/lib/jenkins/workspace/Catalog-Service/src/main/kotlin/com/mg/catalog/command/CreateCatalogItemCommand.kt:[11,31] Unresolved reference: QUEUE_CLUSTER_ID

【问题讨论】:

    标签: jenkins kotlin


    【解决方案1】:

    该异常似乎与 kotlin 类型推断有关。在我指明类型后,编译已经完成且没有错误。但为什么?还是不明白我的机器是如何通过类型推断编译的?

    companion object {
        const val QUEUE_CLUSTER_ID: String = "Commands"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 2016-11-29
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      相关资源
      最近更新 更多