O que é Lombok e para que serve?
\n\nLombok (Project Lombok) é uma biblioteca para a linguagem Java que permite reduzir significativamente a quantidade de código boilerplate. Em Java, os desenvolvedores frequentemente escrevem construções repetitivas: getters, setters, construtores, métodos toString(), equals() e hashCode(). O Lombok gera automaticamente esse código em tempo de compilação usando anotações.
O principal objetivo do Lombok é tornar o código mais limpo, mais curto e mais fácil de manter. Em vez de escrever dezenas de linhas de código repetitivo, você simplesmente adiciona uma anotação, e tudo é gerado automaticamente. Isso é especialmente útil para classes modelo (POJO/DTO), onde o código boilerplate pode representar até 70% do volume total.
\n\nLombok não é um framework em tempo de execução — ele funciona exclusivamente em tempo de compilação. O código gerado é incorporado ao bytecode, portanto, em tempo de execução, nenhuma dependência do Lombok é necessária.
\n\nInstalação do Lombok
\n\nLombok é adicionado como uma dependência comum ao seu projeto. Como é uma biblioteca Java, a instalação via pip ou npm não se aplica. Aqui estão as principais formas de instalação:
Maven
\nAdicione ao pom.xml:
<dependency>\n <groupId>org.projectlombok</groupId>\n <artifactId>lombok</artifactId>\n <version>1.18.30</version>\n <scope>provided</scope>\n</dependency>\n\nGradle
\nAdicione ao build.gradle:
dependencies {\n compileOnly 'org.projectlombok:lombok:1.18.30'\n annotationProcessor 'org.projectlombok:lombok:1.18.30'\n}\n\nIntelliJ IDEA
\nNo IntelliJ IDEA, é necessário instalar o plugin Lombok (Settings → Plugins → Marketplace → Lombok) e ativar o processamento de anotações (Settings → Build, Execution, Deployment → Compiler → Annotation Processors → Enable annotation processing).
\n\nEclipse
\nBaixe o arquivo JAR do Lombok do site oficial e execute-o com um duplo clique — o instalador será aberto, encontrará sua IDE e configurará as definições necessárias.
\n\nInício rápido com exemplo de código
\n\nVamos considerar uma classe Java típica antes e depois do uso do Lombok.
\n\nSem Lombok (abordagem tradicional):
\npublic class User {\n private String name;\n private int age;\n private String email;\n\n public User() {}\n\n public User(String name, int age, String email) {\n this.name = name;\n this.age = age;\n this.email = email;\n }\n\n public String getName() { return name; }\n public void setName(String name) { this.name = name; }\n public int getAge() { return age; }\n public void setAge(int age) { this.age = age; }\n public String getEmail() { return email; }\n public void setEmail(String email) { this.email = email; }\n\n @Override\n public String toString() {\n return "User{name='" + name + "', age=" + age + ", email='" + email + "'}";\n }\n\n @Override\n public boolean equals(Object o) {\n if (this == o) return true;\n if (o == null || getClass() != o.getClass()) return false;\n User user = (User) o;\n return age == user.age && Objects.equals(name, user.name) && Objects.equals(email, user.email);\n }\n\n @Override\n public int hashCode() {\n return Objects.hash(name, age, email);\n }\n}\n\nCom Lombok:
\nimport lombok.*;\n\n@Data\n@NoArgsConstructor\n@AllArgsConstructor\npublic class User {\n private String name;\n private int age;\n private String email;\n}\n\nApenas 5 linhas em vez de 50! O código ficou conciso, legível e fácil de manter.
\n\nPrincipais anotações e métodos do Lombok
\n\nAbaixo estão as principais anotações do Lombok. Cada uma delas gera um conjunto específico
Também na biblioteca
Migrações de banco de dados em Go: visão geral de ferramentas e práticas
Agendador de Tarefas em C# (.NET): Quartz.NET, Hangfire, Coravel
mimalloc para C++: guia completo com exemplos práticos
Trabalho com imagens em PHP: guia completo sobre GD e Imagick