2017-01-07 29 views
26

Użyłem Lombok w moim projekcie, ale mój kolega nie zgadzają się z niego korzystać, a jego powodem jest (od controversy of lombok documents)Czy projekt Lombok obsługuje język Java 9?

obu tych kawałków Projektu Lombok skorzystać z API niepublicznych do osiągnięcia ich czary. Oznacza to, że istnieje ryzyko, że projekt Lombok zostanie zerwany wraz z kolejnymi wydaniami IDE lub JDK.

Ale to bardzo stary dokument napisany w 2010 roku, może teraz rozwiązał problem, więc chcę się dowiedzieć, czy Lombok będzie obsługiwał Javę 9 i czy nadal korzysta z niepublicznych API: s?

Odpowiedz

40

Projekt Lombok ma an issue tracking Java 9 support. Począwszy od 9 stycznia 2018 i wersji 1.16.20, Lombok oficjalnie obsługuje Javę 9. Od the changelog:

  • Platforma: Lepsze wsparcie dla jdk9 w nowym IntelliJ, Netbeans i dla Gradle.
  • ŁAMANIE ZMIAN: klucz konfiguracyjny lombok lombok.addJavaxGeneratedAnnotation teraz domyślnie false zamiast wartości true. Oracle przerwał tę adnotację wraz z wydaniem JDK9, co wymagało tej przełomowej zmiany.
  • ŁAMANIE ZMIAN: klucz konfiguracyjny lombok lombok.anyConstructor.suppressConstructorProperties jest teraz przestarzały i domyślnie jest ustawiony na true, czyli domyślnie lombok nie generuje automatycznie adnotacji @ConstructorProperties. Nowy klucz konfiguracyjny lombok.anyConstructor.addConstructorProperties już istnieje; ustaw go na true, jeśli chcesz zachować stare zachowanie. Oracle mniej więcej zepsuła tę adnotację wraz z wydaniem JDK9, co wymagało tej przełomowej zmiany.
  • ROZWÓJ: Kompilacja lomboka na JDK1.9 jest teraz możliwa.

(W tej chwili nie jest moduł, choć, więc trzeba umieścić go na ścieżce klasy. Dzięki Tos' answer, który po raz pierwszy wspomniał o tym.)

+0

mimo, że jest to bardzo dobra odpowiedź na ostatni styczeń, teraz, gdy Java 9 jest obecnie niedostępna ... Czytanie błędu jednak wygląda tak szybko? – xenoterracide

2

Aktualny stan Lombok dla Java 9 jest śledzona tutaj: https://github.com/rzwitserloot/lombok/issues/985

W tej chwili błąd ten jest nadal otwarty i (podobno) aktywnie pracuje nad nim. Jest uwolnienie krawędź, że obecnie nie rozwiązuje większość problemów więc w tym momencie wygląda na to wszystko, co musisz zrobić, to czekać ..

2

Problem wydaje się być rozwiązany od 9 stycznia 2018: https://github.com/rzwitserloot/lombok/issues/985#issuecomment-356135454

Per Wersja Lombok 1.16.20 Java 9 jest obsługiwana.

+0

Nie zapewnia to odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posts/18613247) – kayess

+0

To jest odpowiedź i dobra - dostarcza niezbędnych nowych informacji. @Tos: Dlatego właśnie zaktualizowałem swoją odpowiedź, aby to odzwierciedlić. – Nicolai