在 Travis 上本地通过的构建失败

时间:2021-04-06 14:03:24

标签: java maven kotlin travis-ci

最近我一直在尝试更多地了解持续集成的方法,并选择了 Travis CI 来完成这项工作。但是,在我的一个使用 Java 和 Kotlin 的项目中,我的本地构建通过了,但在 Travis 上失败了。

我一直无法理解我收到的关于构建失败的原因的错误消息。 kotlin-maven-plugin 似乎是错误的根源。在构建日志中看到的有问题的命令是 mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V。 我已在本地运行此命令,没有错误且构建成功。

这是来自 CI 构建作业的堆栈跟踪的相关片段:

[INFO] --- kotlin-maven-plugin:1.4.32:compile (compile) @ BytesToJava ---
[ERROR] java.lang.ExceptionInInitializerError
    at com.intellij.pom.java.LanguageLevel.<clinit>(LanguageLevel.java:25)
    at com.intellij.core.CoreLanguageLevelProjectExtension.<init>(CoreLanguageLevelProjectExtension.java:26)
    at com.intellij.core.JavaCoreProjectEnvironment.<init>(JavaCoreProjectEnvironment.java:42)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreProjectEnvironment.<init>(KotlinCoreProjectEnvironment.kt:26)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$ProjectEnvironment.<init>(KotlinCoreEnvironment.kt:121)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:425)

希望得到一些资源甚至相关的问题线索。提前致谢:)

Travis Build Logs

1 个答案:

答案 0 :(得分:0)

问题是由非法反射操作和 Kotlin Maven 插件与 Java 9 上的任何项目(我的项目使用 Java 15)的问题引起的。正如 YouTrack 上的 this thread 所述,解决方法是:

<块引用>

解决方法是使用以下环境变量运行 mvnMAVEN_OPTS=--illegal-access=permit

将具有相同值的全局环境变量添加到我的 .travis.yml 解决了该问题。