Подтвердить что ты не робот

Вызвано: java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTags при использовании ломбок

У меня есть зависимость от pom.xml:

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

Когда я запускаю mvn clean install, у меня есть следующая ошибка:

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)

Я попытался использовать java 1.8, 1.9, 1.10. И я пробовал ломбок 1.6.10, 1.6.12, 1.6.20. Все они имеют одинаковую проблему.

4b9b3361

Ответ 1

Я могу решить проблему в моем проекте maven с Java-10 и Lombok 1.18.2.

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

Ответ 2

У меня такая же проблема, и я решаю ее, добавив этот код в pom.xml

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

Ответ 3

Я изменил версию lombok и это сработало для меня.

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

Ответ 4

Решила это:

1) скачать lombok-edge.jar,

2) с использованием следующей зависимости:

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

Ответ 5

Решил проблему, обновив версию lombok с 1.16.18 до 1.16.22. Я подозреваю, что любая совместимая версия выше чем .22 могла бы добиться цели.

Ответ 6

мой проект использует java1.8, и эту проблему можно решить с помощью lombok 1.18.4.

Ответ 7

Мне всегда удавалось решить эту проблему с помощью многочисленных старых проектов, использующих более старую версию Lombok, путем простого обновления версии Lombok.

С этим обновлением Ломбок; для проектов с большой памятью во время фаз выполнения теста мне также пришлось начать указывать конфигурации памяти для maven-surefire-plugin который, как правило, теперь нуждается в большем 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? 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? ошибки

Ниже приведены примеры рабочих конфигураций 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>

Ответ 8

У меня изначально был lombok 1.16.2, java 1.8 и я столкнулся с Причиной: java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTags

ClassNotFoundException на com.sun.tools.javac.code.TypeTags был исправлен, но начал видеть, что пакет не найден.

Я обновил ломбок до 18.0. У меня есть это в моем gradle

compile('org.projectlombok:lombok:1.18.0')

Сбой сборки с пакетом, который не найден почти для всех.

error: package org.springframework.boot.autoconfigure does not exist
error: package org.springframework.context.annotation does not exist
error: package org.springframework.boot.builder does not exist

Кто-нибудь еще сталкивался с этой проблемой?

Ответ 9

Я столкнулся с этой проблемой при обновлении моего проекта с JDK 8 до JDK 12 и использовании gradle вместо maven и использовании плагина gradle io.franzbecker:gradle-lombok для автоматической настройки lombok.

В этом сценарии изменение buildScript.dependencies с classpath "io.franzbecker:gradle-lombok:1.14" на classpath "io.franzbecker:gradle-lombok:3.2.0" помогло мне.