O erro que você está enfrentando ao rodar mvn package
está relacionado ao uso da biblioteca Lombok com o JDK 17, mais especificamente com a exportação de módulos no Java 9+.
Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @...)
because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module
Causa DELE:
A partir do Java 9, o JDK usa um sistema de módulos chamado JPMS (Java Platform Module System). O que está acontecendo aqui é que o Lombok tenta acessar internamente a API do compilador (com.sun.tools.javac.processing
), mas isso não está exportado por padrão.
Solução 1: Adicionar parâmetro de exportação no pom.xml
Você pode forçar o Java a exportar esse pacote ao adicionar o seguinte ao pom.xml
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerArgs>
<arg>--add-exports</arg>
<arg>jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
</compilerArgs>
</configuration>
</plugin>
Solução 2: Adicionar o parâmetro diretamente na linha de comando do Maven
Se quiser testar rapidamente, rode:
mvn clean package \
-DargLine="--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"
Solução 3: Usar JDK 8 (se o projeto for compatível)
Se o projeto foi originalmente feito para rodar com JDK 8, você pode configurar sua máquina para usar o JDK 8 ao invés do 17, já que esse problema não ocorre no Java 8 (não existe JPMS por lá).