错误:在使用Kotlin编译Java代码时,-source 1.3中不支持generics

我正在使用Maven和kotlin-maven-plugin来编译代码。

  kotlin-maven-plugin org.jetbrains.kotlin ${kotlin.version}   compile process-sources  compile    src/main/kotlin src/main/resources target/generated-sources/jooq-h2     test-compile process-test-sources  test-compile    src/test/kotlin      

target/generated-sources/jooq-h2目录包含Java源文件。 我遵循Kotlin手册和其他人的建议 ,将Kotlin压缩放在process-sources而不是compile 。 我(可能是错误的?)假设Kotlin编译器也负责为我编译这些Java文件。

但是,在一些服务器上(例如Jenkins CI),我得到了一些奇怪的编译错误消息,比如:

 [ERROR] /var/lib/jenkins/jobs/jooq-build/workspace/jOOQ-examples/jOOQ-kotlin-example/target/generated-sources/jooq-h2/org/jooq/example/db/h2/tables/Author.java:[35,37] error: generics are not supported in -source 1.3 

这是为什么?

我注意到,在这个特别的Kotlin项目中,没有指定Java编译器,特别是Java版本。 这导致选择了一些机器默认值,即本地机器的Java 1.8,而Jenkins CI服务器上的Java 1.3。 添加一个明确的引用到maven-compiler-plugin解决了我的问题:

  org.apache.maven.plugins maven-compiler-plugin 3.3  1.8 1.8