最近我一直在尝试更多地了解持续集成的方法,并选择了 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)
希望得到一些资源甚至相关的问题线索。提前致谢:)
答案 0 :(得分:0)
问题是由非法反射操作和 Kotlin Maven 插件与 Java 9 上的任何项目(我的项目使用 Java 15)的问题引起的。正如 YouTrack 上的 this thread 所述,解决方法是:
<块引用>解决方法是使用以下环境变量运行 mvn
:MAVEN_OPTS=--illegal-access=permit
将具有相同值的全局环境变量添加到我的 .travis.yml 解决了该问题。