Можно ли настроить maven-compiler-plugin
, чтобы он работал и с JDK 8 и JDK 12? Я не уверен, что это актуально, но это проект Spring Boot.
1. Конфигурация
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<release>8</release>
</configuration>
</plugin>
компилируется под JDK-12, но под JDK-8 происходит сбой:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project xxxx:
Fatal error compiling: invalid flag: --release
2. Конфигурация
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
, в котором отсутствует параметр <release>8</release>
, компилируется в JDK-8, но в JDK-12 происходит сбой:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project xxxx:
Fatal error compiling: CompilerException: NullPointerException
Во всех возможных интернет-источниках я обнаружил совет использовать параметр <release>8</release>
, чтобы избежать ошибки в JDK-12, но это отключает компиляцию в JDK-8.
Нашей исходной и целевой совместимостью является Java 8, и нам нужно собрать код со старым добрым простым mvn clean install
(без предоставления профиля!) На машинах разработчиков с JDK-12, но также и в Jenkins, где нам все еще нужно хранить JDK-8, и у нас также есть несколько консервативных разработчиков:)