Поддерживает ли проект Lombok Java 9?
Я использовал Lombok в своем проекте, но мой коллега не согласен использовать его, и его причина (от противоречие ломбокских документов)
Обе эти части проекта Lombok используют непубличные API для достижения своего колдовства. Это означает, что существует риск того, что Project Lombok будет разорван с последующими релизами IDE или JDK.
Но это очень старый документ, написанный в 2010 году, возможно, теперь он решил проблему, поэтому я хочу знать, поддерживает ли Lombok Java 9 и использует ли он еще не публичный API: s?
Ответы
Ответ 1
В проекте Lombok есть проблема с отслеживанием поддержки Java 9. Начиная с 9 января 2018 года и версии 1.16.20, Lombok официально поддерживает Java 9. Из журнала изменений:
- ПЛАТФОРМА: Лучшая поддержка jdk9 в новых IntelliJ, Netbeans и Gradle.
- BREAKING CHANGE: ключ конфигурации
lombok.addJavaxGeneratedAnnotation
теперь по умолчанию имеет значение false
вместо true. Oracle нарушила эту аннотацию с выпуском JDK9, что потребовало этого критического изменения. - BREAKING CHANGE: ключ конфигурации
lombok.anyConstructor.suppressConstructorProperties
теперь устарел и по умолчанию имеет значение true
, то есть по умолчанию lombok больше не генерирует аннотации @ConstructorProperties
автоматически. Новый ключ конфигурации lombok.anyConstructor.addConstructorProperties
теперь существует; установите его в true
если вы хотите старое поведение. Oracle более или менее прервал эту аннотацию с выпуском JDK9, что потребовало этого критического изменения. - РАЗРАБОТКА: теперь возможна компиляция ломбок на JDK1.9.
(На данный момент это не модуль, поэтому вам нужно разместить его на пути к классам. Спасибо ответу Тос, который первым упомянул об этом.)
Ответ 2
Текущий статус lombok для Java 9 отслеживается здесь: https://github.com/rzwitserloot/lombok/issues/985
В настоящее время эта ошибка все еще открыта и (по-видимому) активно работает. Существует краевой выпуск, который решает большинство проблем, поэтому на данный момент похоже, что все, что вам нужно сделать, это подождать..
Ответ 3
Проблема, по-видимому, решена с 9 января 2018 года: https://github.com/rzwitserloot/lombok/issues/985#issuecomment-356135454
Per Lombok версия 1.16.20 Поддерживается Java 9.
Ответ 4
Поскольку статус lombok для Java 9 отслеживается здесь.
Для подсказок, почему это - проблема, см. Этот пост в блоге, который объясняет некоторые из "уловок"/"хаков"