我在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
。我尝试了lombok 1.6.10, 1.6.12, 1.6.20
。所有这些都有同样的问题。
答案 0 :(得分:5)
我有同样的问题,我通过在pom.xml中添加此代码来解决了这个问题
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.0.0</version>
</dependency>
答案 1 :(得分:4)
我可以使用Java-10和Lombok 1.18.2解决我的Maven项目中的问题。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
答案 2 :(得分:3)
我更改了lombok
版本,它对我有用。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
<scope>provided</scope>
</dependency>
答案 3 :(得分:2)
解决了这个问题:
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>
答案 4 :(得分:1)
通过将lombok版本从1.16.18升级到1.16.22解决了该问题。我怀疑任何高于.22的兼容版本都可以解决问题。
答案 5 :(得分:0)
我的项目使用的是Java1.8,而使用lombok 1.18.4可以解决此问题。
答案 6 :(得分:0)
我总是设法通过简单升级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?
错误
有关工作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>
答案 7 :(得分:0)
我将项目从JDK 8升级到JDK 12并使用gradle而不是maven并使用io.franzbecker:gradle-lombok
gradle插件自动配置lombok时遇到了这个问题。
在这种情况下,将buildScript.dependencies从classpath "io.franzbecker:gradle-lombok:1.14"
更改为classpath "io.franzbecker:gradle-lombok:3.2.0"
对我有用。
答案 8 :(得分:0)
当我用brew安装maven
并同时安装了Java.15.x并导致此错误时,发生了这种情况。
要进行验证,请在使用maven进行构建时添加调试选项-X
,并检查maven使用的Java版本。
删除Java.15x目录,并在.bashrc
中使用正确的Java版本设置JAVA_HOME。