web-dev-qa-db-fra.com

Provoqué par: Java.lang.ClassNotFoundException: com.Sun.tools.javac.code.TypeTags lors de l'utilisation de lombok

J'ai la dépendance suivante dans pom.xml:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.8</version>
</dependency>

Quand je lance mvn clean install, J'ai l'erreur suivante:

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)

J'ai essayé d'utiliser Java 1.8, 1.9, 1.10. Et j'ai essayé lombok 1.6.10, 1.6.12, 1.6.20. Tous ont le même problème.

13
Kai Liu

Je suis en mesure de résoudre le problème dans mon projet maven avec Java-10 et Lombok 1.18.2.

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <scope>provided</scope>
</dependency>
9
ManojP

J'avais changé la version lombok et cela a fonctionné pour moi.

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.22</version>
            <scope>provided</scope>
        </dependency>
6
Muhammed Ozdogan

J'ai le même problème et je le résous en ajoutant ce code dans pom.xml

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-maven-plugin</artifactId>
    <version>1.18.0.0</version>
</dependency>
6
ahmed

Résolu cela par:

1) téléchargez le lombok-Edge.jar,

2) en utilisant la dépendance suivante:

<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>
4
Kai Liu

Résolution du problème en mettant à niveau la version lombok de 1.16.18 à 1.16.22. Je soupçonne que toute version compatible supérieure à .22 pourrait faire l'affaire.

2
klauss

mon projet utilise Java1.8, et ce problème a été résolu en utilisant lombok 1.18.4.

0
车言涛

J'ai toujours réussi à résoudre ce problème avec de nombreux anciens projets utilisant une ancienne version de Lombok en mettant simplement à niveau la version de Lombok

Avec cette mise à niveau de Lombok; pour les projets avec une mémoire importante pendant les phases de test, j'ai également dû commencer à spécifier des configurations de mémoire pour maven-surefire-plugin qui semble généralement avoir besoin de plus de mémoire pour éviter 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? les erreurs

Voir ci-dessous pour un exemple de configuration de pom.xml

<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>
0
DaddyMoe