Как мне скомпилировать многомодульный проект Maven, где модули имеют разные версии Java? Возможно, используя Jenv?
Предположим, у меня есть многомодульный проект Maven с двумя модулями:
foo
; требует Java 1.8 для компиляцииbar
; требует Java 11 для компиляции
Я хотел бы иметь возможность построить их, запустив mvn clean install
из родительского каталога, и пусть они компилируются с использованием соответствующих версий Java.
Давайте проясним: обновление до Java 11 не является началом. Зачем:
- Я хочу обновить приложение
bar
в Java 11, чтобы получить новейшие функции и улучшения языка Java.bar
является автономным приложением Spring Boot, и я могу это сделать. - заявка
foo
плагин модуля развертывания JBoss Он подключен к стороннему приложению, которое в настоящее время находится на Java 8. Я не могу поместить модуль, скомпилированный в Java 11, в приложение, работающее на Java 8.
Я вижу, что есть способ сделать это с помощью maven-toolchains-plugin, как описано в этом посте. Это может сработать. Но я пользуюсь jenv
управлять версиями, и можно установить версию Java для каждого каталога (используя jenv local
). Мне интересно, есть ли способ использовать Jenv для этого вместо плагина toolchains. Это делает почти все, что мне нужно; Мне просто нужно выяснить, как заставить Maven читать версию Java из файла конфигурации jenv в каталоге.