Несколько возможных причин, по которым возникает ошибка «cannot find symbol» при использовании аннотации @Builder в Lombok:
- Использование класса строителя в качестве типа параметра или типа возврата. 1 Это происходит, когда javadoc не знает о модификациях кода, сделанных Lombok. 1
- Проблемы со структурой проекта. 2 Например, если процессор аннотаций Lombok в процессе сборки не вызывается. 2
Несколько решений проблемы:
- Использование delombok. 1 С его помощью генерируется исходный код, к которому можно получить доступ на фазе javadoc. 1
- Ручное добавление внутреннего класса строителя без реализации. 1 Для этого нужно добавить статический внутренний класс внутри класса, использующего аннотацию @Builder. 1 Например:
@Builder public class Foo { // поля и методы public static class FooBuilder {}; }
. 1 - Обновление версии Lombok. 2 Стоит пересмотреть зависимости в pom-файле, обновить версию Lombok до последней стабильной и указать версию плагина. 2