Próbuję uruchomić Dagger 2 oraz Lombok w moim projekcie Java. Najpierw Lombok musi uciec, ale czy rzeczywiście wydaje się być przypadkowy. Na początku podejrzewałam, że mogę określić kolejność poszczególnych pozycji słoików biblioteki w ścieżce klasy, ale ta kolej najwyraźniej zostanie zignorowana.Określanie kolejności procesorów adnotacji
Czy istnieje sposób, aby określić kolejność ich uruchomienia, czy też po prostu muszę żyć, nie mogąc połączyć dwóch punktów dostępowych?
Mam wyprodukowany SSCCE test case.
Prosty git clone
& mvn compile
wystarcza do wykazania problem - jeśli komentarz linii 18 i usuń wiersze 20-21 w App.java, będzie to skompilować, chociaż oznaczenie Lombok w linii 18 tworzy identyczną konstruktora. Problem polega na tym, że Lombok wydaje się działać po Sztyletie.
Osobiście upuściłem Lombok z powodu tych wad i próbowałem przenieść się do framew obsługiwanych przez Javaca lub powrócić do zwykłej Java. Dla obiektów wartości używam @AutoValue. Eksperymentuję też z Groovy.Idealnie chciałbym, aby AspectJ tkał pracę z przetwarzaniem adnotacji (taki jak obecny w Dagger i AutoValue), ale wszedł na https://bugs.eclipse.org/bugs/show_bug.cgi?id=462782. –
Czy pojawiły się jakieś nowe prace nad tym problemem .. Może być kotlin ułatwi życie, ale to nadal oznacza wiele refaktoryzacji w kodzie –
Dziennik zmian [Lombok v1.16.12] (https://projectlombok.org/changelog) sugeruje, że wykonano pracę, aby wesprzeć/poprawić działanie zarówno Lombok, jak i Daggera, ale nie miałem okazji wypróbować tego. – Torque