【发布时间】:2018-11-06 23:32:11
【问题描述】:
我们正在使用 Jenkins 共享库来集中我们所有(脚本化的)管道的一些代码。现在我们将一些 Groovy 代码分解为 .jar 库(用 Kotlin 编写,编译为与 Java 8 兼容)。我们将此库发布到我们的内部 maven 存储库,现在想在我们的共享库中使用它。
我们使用@Grab 来加载我们的库,直到那时它就像一个魅力。然而,我们得到了NoSuchMethodError's。我们确定了一点,我们在 Kotlin 库中使用了 OkHttp。 OkHttp 内部使用 Okio。当我们从管道调用内部调用 OkHttp-Code 的方法时,一切都很好。然而,当 OkHttp-Code 在内部调用 Okio 时,我们会得到一个 NoSuchMethodError。
我们已经检查了发布的.jar 文件,它包含带有似乎缺少方法的类。有人知道问题可能是什么吗?
虽然我们这样做了,但我们无法访问在 Kotlin 库中设置在 Jenkins 上的环境变量,有什么方法可以解决这个问题吗?
【问题讨论】:
标签: jenkins jenkins-pipeline jenkins-shared-libraries