maven - Causado por: java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTags cuando se usa lombok
java-8 maven-plugin (7)
Tengo la siguiente dependencia en pom.xml:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.8</version>
</dependency>
Cuando ejecuto
mvn clean install
, tengo el siguiente error:
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTags
at java.lang.ClassLoader.findClass (ClassLoader.java:711)
at java.lang.ClassLoader.loadClass (ClassLoader.java:566)
at lombok.launch.ShadowClassLoader.loadClass (ShadowClassLoader.java:418)
Traté de usar Java
1.8, 1.9, 1.10
.
Y probé lombok
1.6.10, 1.6.12, 1.6.20
.
Todos tienen el mismo problema.
Había cambiado la versión de
lombok
y funcionó para mí.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
<scope>provided</scope>
</dependency>
Resuelto esto por:
1) descargue lombok-edge.jar,
2) usando la siguiente dependencia:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.21</version>
<scope>system</scope>
<systemPath>/Users/xxx/Downloads/lombok-edge.jar</systemPath>
</dependency>
Se resolvió el problema actualizando la versión de lombok del 1.16.18 al 1.16.22. Sospecho que cualquier versión compatible superior a .22 podría funcionar.
Siempre logré resolver este problema con numerosos proyectos antiguos que usaban una versión anterior de Lombok simplemente actualizando la versión de Lombok
Con esta actualización de Lombok;
para proyectos con mucha memoria durante las fases de ejecución de la prueba, también tuve que comenzar a especificar configuraciones de memoria para
maven-surefire-plugin
que generalmente parece necesitar ahora más memoria para evitar la
Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
errores
Vea a continuación, por ejemplo, las configuraciones de pom.xml de trabajo
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
</properties>
...
<lombok.version>1.18.2</lombok.version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
...
</dependencies>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!--Extra memory to prevent jvm crash during heavy Integration/unit test with newer lombok and jdk8-->
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
Soy capaz de resolver el problema en mi proyecto maven con Java-10 y Lombok 1.18.2.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
Tengo el mismo problema y lo soluciono agregando este código en pom.xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.0.0</version>
</dependency>
mi proyecto usa java1.8, y este problema se ha resuelto usando lombok 1.18.4.