背景
我正在尝试使用 Kotlin 创建一些 Teamcity 配置。在测试 Teamcity 的生成时,我在 Intellij 中使用了 Maven,尽管我使用命令行得到了相同的结果。
问题
一个最小的例子:https ://gist.github.com/3761e6f3847db9f8f772c9e16663aaa9
要重新创建问题,请使用以下命令:
mvn teamcity-configs:generate
错误是:
[ERROR] Runtime error RootProjectId: kotlin.reflect.jvm.internal.impl.builtins.KotlinBuiltIns$3[113]: java.lang.AssertionError: Built-in class kotlin.Any is not found
尽管我已采取措施最小化提供的示例,但我不是 Maven 专家,我不确定还有什么可以从pom.xml
文件中删除。
问题似乎源于尝试使用 to copy
(cf., docs ),这似乎使 Kotlin 因一些反射问题而绊倒。删除copy
并且配置的生成工作正常。
研究
有几个地方讨论了这个问题(例如这里和这里),但我找不到任何与我遇到的问题相匹配的地方,也找不到为我解决问题的解决方案。
最有趣的是这个,它与从 Kotlin 版本 1.3.x 迁移到 1.4.x 无关,但是,kotlin-stdlib[...]
JetBrainkotlin-reflect
开发人员“Udalov”(直接链接到评论)。细节在我头上,可能与这里无关,但这是我见过的解决这个问题的最具技术性的答案。
我试过的
我尝试将其添加kotlin-reflect
为显式依赖项并确保它kotlin-stdlib-jdk8
存在且正确。我尝试将 Kotlin 版本从 1.3.70 更改为 1.3.72 再到 1.4.32,结果没有改变。
对此的任何帮助或见解将不胜感激,即使只是为了增进我对这个软件堆栈的理解。