错误:在使用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