error: generics не поддерживаются в -source 1.3 при компиляции кода Java с Kotlin

Я использую Maven и kotlin-maven-plugin для компиляции кода.

 <plugin> <artifactId>kotlin-maven-plugin</artifactId> <groupId>org.jetbrains.kotlin</groupId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <phase>process-sources</phase> <goals> <goal>compile</goal> </goals> <configuration> <sourceDirs> <source>src/main/kotlin</source> <source>src/main/resources</source> <source>target/generated-sources/jooq-h2</source> </sourceDirs> </configuration> </execution> <execution> <id>test-compile</id> <phase>process-test-sources</phase> <goals> <goal>test-compile</goal> </goals> <configuration> <sourceDirs> <source>src/test/kotlin</source> </sourceDirs> </configuration> </execution> </executions> </plugin> 

target/generated-sources/jooq-h2 содержит исходные файлы Java. Я следую рекомендациям Котлина и другим людям, добавляя комплайнт Котлина в <phase>process-sources</phase> а не <phase>compile</phase> . Я (возможно, ошибочно?), Полагая, что компилятор 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 для моей локальной машины, но Java 1.3 на сервере Jenkins CI. Добавление явной ссылки на maven-compiler-plugin решило проблему для меня:

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>