Все, что Вы должны знать о переходе на Java 11

Недавно корпорация Oracle объявила о выпуске релиза Java 11 LTS (Long Term Support) и формально это событие знаменует собой завершение монументального сдвига в экосистеме Java. Со сложностями перехода от Java 8 к модульному и гибкому JDK с шестимесячным циклом выпуска релизов, с новыми лицензионными соглашениями и долгосрочными моделями поддержки, мы вступили в новую эру!
Теперь кодовые базы должны следовать за нововведениями, и многие проекты перейдут с Java 8 непосредственно на Java 11. Если вы с этим согласны, то вы пришли в нужное место — это руководство по миграции сообщит вам все, что нужно знать при переходе с Java 8 на Java 11.
Мы начнем с супер-быстрого тура по новому циклу релизов, лицензированию и поддержке прежде, чем обсуждать, как подготовить миграцию. И, наконец, как преодолеть четыре наиболее распространенных препятствия (если вы уже перешли на Java 9, можете пропустить, пройденную вами часть). Обратите внимание, что мы говорим о миграции, а не модуляции (это не требуется и должно быть отдельным шагом), поэтому мы не будем создавать какие-либо модули.
О релизах, JDK и лицензиях
Это может показаться скучным, но шестимесячный цикл выпуска релизов, коммерциализация Oracle JDK и открытый вопрос о долгосрочной поддержке OpenJDK, вероятно, окажут большее влияние на ваши проекты, чем технические проблемы перехода на Java 11. Итак, давайте обсудим это, но будем краткими — подробности можно найти в прилагаемых ссылках
Java Next (talk at JavaZone 2018)
    Новые правила выпуска релизов Java

    Это самое известное изменение, поэтому скажем кратко:

    • выход новых крупных релизов каждые полгода (март и сентябрь)
    • спустя один и четыре месяца после выхода релиза будут выпускаться пакеты с незначительными обновлениями
      OpenJDK — новый стандарт
      В былые темные времена (до сентября 2018 года) JDK от Oracle (и ранее JDK от Sun) были более функциональными, более эффективными и более стабильными, следовательно — это был выбор по умолчанию для большей части пользователей экосистемы Java. OpenJDK при этом был похож на уродливого утенка, которого большинство разработчиков пытались избегать. Но теперь, с Java 11, OpenJDK превратилась в лебедя!
      Oracle JDK становится полностью коммерческим
      Компания Oracle долго и тяжело работала над тем, чтобы Oracle JDK 11 и OpenJDK 11 стали практически идентичными с технической точки зрения — до такой степени, что наиболее важным отличием между ними является файл лицензии. Oracle подталкивает разработчиков к использованию OpenJDK, делая свой фирменный JDK коммерческим, то есть вы не можете использовать его в продакшен, не платя Oracle с первого дня запуска проекта (вы можете использовать Oracle JDK для разработки и тестирования).
      Как следствие, теперь именно OpenJDK станет новым стандартом с полным набором функций, максимальной производительностью и бесплатной лицензией (GPL + CE), что будет отличным выбором! На следующей ступени идут бок о бок Oracle и другие производители со своими вариантами OpenJDK, для которых они продают долгосрочную поддержку.
      Долгосрочная техподдержка (LTS)
      Oracle теперь выкладывает OpenJDK на jdk.java.net и, как уже упоминалось, публикует два обновления основной версии OpenJDK в год. Итак, что же будет происходить через шесть месяцев, если вы хотите остаться на какой-то определенной версии, при этом все еще получая обновления с исправлениями безопасности и ошибок?
      Есть два варианта:
      • заплатить кому-нибудь за коммерческую поддержку;
      • надеяться на бесплатную поддержку OpenJDK;
      Что касается коммерческой поддержки, то существуют различные вендоры, которые будут осуществлять долгосрочную коммерческую техподдержку для конкретных версий JDK:
      Что же касается поддержки OpenJDK, в настоящее время идут многообещающие дискуссии о том, что обновления для каждого релиза будут находиться в публичном доступе не менее четырех лет после его выхода.
      Скорее всего, каждая версия c LTS получит свою управляющую компанию, которая будет отвечать за обновления, и похоже, что для Java 11 — это будет Red Hat. Это касается исходных кодов, но откуда мы сможем получить финальные бинарные файлы? Сайт https://adoptopenjdk.net/ готов к постоянному размещению на нем различных версий OpenJDK для всех существующих платформ.
      В совокупности мы получим бесплатную OpenJDK LTS, которая будет организована компаниями, хорошо известными в Java сообществе и постоянно обновляемые билды на сайте AdoptOpenJDK. И это было бы круто!
      Оцените статью, если она вам понравилась!