1
resposta

falha no mvn

Ao executar o comando mvn package, apresenta a seguinte mensagem. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu realizei as seguintes instalações na minha máquina

  1. Java
  2. mvn

Porém, ambas as versões, são atuais. Devido o erro de versão anterior que foi dado, eu tive que usar uma versão compativel ao projeto:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

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á).