Maven-compiler-plugin обеспечивает совместимость исходного кода со старым JDK, но компилирует в более новой версииJAVA

Программисты JAVA общаются здесь
Anonymous
Maven-compiler-plugin обеспечивает совместимость исходного кода со старым JDK, но компилирует в более новой версии

Сообщение Anonymous »

Я пытаюсь обеспечить совместимость своего Java-проекта с Java 17, но на самом деле компилирую и отправляю jar-файлы с уровнем совместимости Java 21.
Причина в том, что я выпускаю новую основную версию и я хотел бы иметь Java 21 в качестве базовой версии, но для некоторых пользователей это может стать проблемой. Таким образом, идея состоит в том, чтобы выпустить Java 21, но сохранить исходные коды совместимыми с версией 17, чтобы иметь возможность вернуть сборку Java 17 в минорной версии, если пользователь не может выполнить обновление по уважительной причине. Если все пользователи смогут без проблем перейти на Java 21, я смогу использовать только функции Java 21, не дожидаясь выхода новой основной версии моего программного обеспечения.
Я озадачен, когда настройка плагина-компилятора maven.
Чтобы обеспечить совместимость, план таков:
  • Имейте jdk 21 установлен
  • имеют следующую конфигурацию maven-compiler-plugin:

Код: Выделить всё

org.apache.maven.plugins
maven-compiler-plugin

  17  
  21  
 17  


Однако после прочтения «Что такое флаг --release в компиляторе Java 9?» мне интересно, возникнет ли конфликт между флагом Release и другими.
  • Я также планирую собирать и запускать ночные прогоны CI на JDK 17, только с установленным JDK
    17:

Код: Выделить всё

test-nightly



org.apache.maven.plugins
maven-compiler-plugin

  17  
  17  
 17  





Правильно ли я настраиваю плагин maven-compiler?
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/779 ... compile-in

Вернуться в «JAVA»