Java / Lombok Interview questions
Why might Lombok cause issues in multi-module Maven builds with annotation processor ordering?
Annotation processors run in whatever order the build tool discovers and applies them, and if a project uses multiple processors together (Lombok alongside MapStruct, or a custom code-generating processor), the order they run in can matter — particularly since Lombok's generated methods need to already exist by the time another processor that depends on seeing them runs its own analysis.
<annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </path> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> </path> </annotationProcessorPaths>
Explicitly declaring annotationProcessorPaths (rather than relying on whatever processors
happen to be found on the classpath) lets you control this ordering deliberately, which becomes especially
relevant in multi-module builds where different modules might otherwise pick up processors in inconsistent
orders depending on classpath assembly quirks, leading to intermittent, hard-to-reproduce build failures where
a processor can't find methods Lombok hadn't generated yet.
More Related questions...