Мы переносим наши проекты java 8 на java 11. JAVA_HOME по-прежнему указывает на java 8, но первый проект, который будет перенесен, компилируется в java 11, и модульные тесты выполняются просто отлично.
Плагин maven-compiler-plugin и набор инструментов определены как в этом вопросе .Версия Maven - 3.5.0.
Когда я запускаю
mvn verify
, я получаю следующую ошибку:
Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.11.0:
pmd (pmd) on project <yourproject>:
Execution pmd of goal org.apache.maven.plugins:maven-pmd-plugin:3.11.0:
pmd failed: An API incompatibility was encountered while executing
org.apache.maven.plugins:maven-pmd-plugin:3.11.0:pmd:
java.lang.UnsupportedClassVersionError:
<Yourclass> has been compiled by a more recent version of the Java Runtime
(class file version 55.0), this version of the Java Runtime only recognizes
class file versions up to 52.0 //(indentation added for readability)
Я понимаю, что классы были скомпилированы с использованием Java 11(как и предполагалось), и этот maven работает на Java 8, потому что именно на это указывает JAVA_HOME.Но почему это отключает pmd-plugin ?Он должен проверять исходный код, не говоря уже о скомпилированных классах.
Есть ли способ обойти это, если не считать JAVA_HOME равным 11?