Какую версию Java мне следует использовать для разработки моего плагина MOJO Maven? - PullRequest
1 голос
/ 17 января 2020

В настоящее время я реализую новый плагин Maven, и я хотел бы использовать Java 11 для компиляции и выполнения.

Однако я бы хотел, чтобы мой плагин Maven использовался в большинстве наших проектов. Некоторые из них работают в Java 8, некоторые в Java 11.

Обязательно ли использовать Java 8 в моем плагине Maven, если я хочу, чтобы он был включен в другой проект? Есть ли способ реализовать его в Java 11 и сделать его доступным для проекта Java 8?

1 Ответ

2 голосов
/ 17 января 2020

Как довольно часто: это зависит. А с Maven Java используется на разных уровнях, поэтому это требует небольшого пояснения:

Собираетесь ли вы использовать Java 9+ специфицируемых c функций / API?

Если нет, вы можете построить свой проект с помощью Java 11, но вам нужно добавить <release>8</release> в плагин maven-compiler-plugin, чтобы обеспечить совместимость кода Java 8.

Если вы планируете использовать Java 9+ функций / API, добавьте <release>11</release> в плагин maven-compiler-plugin. Теперь вам нужно, чтобы пользователи запускали Maven по крайней мере с Java 11 (что не является проблемой, даже Maven 3.0 работает нормально с Java 14-ea).

Даже если Maven работает на Java 11, ваши пользователи по-прежнему могут создавать Java 8 совместимых проектов (точно так же, как «если нет, ...» из первого пункта), но большинство из них используются для запуска и сборки с Java 8.

...