Я искал ответы на все вопросы о том, почему у нас должен быть источник, отличный от целевого, но не согласованный:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.7</source>
<target>1.8</target>
</configuration>
</plugin>
Если JDK обратно совместим, зачем мне устанавливать целевое значение 1,8, когда компиляция выполняется на 1,7?
Установка источника выше целевого не будет работать, пример для ошибки:
Исходная версия 8 требует целевой версии 1.8
Также от Maven:
Простая установка целевого параметра не гарантирует, что ваш код
фактически работает на JRE с указанной версией. Подводный камень
непреднамеренное использование API, которые существуют только в более поздних JRE, которые
сделать ваш код сбой во время выполнения с ошибкой связывания
Кто-нибудь может привести пример? maven source и target предназначены для моего собственного исходного кода, а не для зависимостей, тогда в каком случае я могу использовать API в последующих компиляциях JRE (в моем собственном коде)?