执行mvn命令遇LombokProcessor模块访问限制错误求解决
排查Lombok模块访问错误的遗漏点
1. 先确认Lombok和JDK的版本匹配
JDK 16+必须用Lombok 1.18.20及以上;JDK 11建议1.18.16+;JDK 9/10用1.18.10+。如果你的Lombok版本低于对应JDK要求,直接升级:
修改pom.xml里的依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 选对应JDK的最新兼容版 --> <scope>provided</scope> </dependency>
2. 检查Maven编译插件配置
确保maven-compiler-plugin版本在3.8.1以上,同时指定JDK版本并配置注解处理器路径,别用旧的配置方式:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <!-- 替换成你的JDK版本 --> <target>17</target> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 和依赖版本保持一致 --> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build>
3. 清理IDE缓存并检查插件配置
如果是在IDE里执行Maven构建,要确保IDE装了最新版Lombok插件,并且开了Enable annotation processing选项。然后清理IDE缓存(IntelliJ:File -> Invalidate Caches;Eclipse:Project -> Clean),避免缓存搞鬼。
4. 确保JVM参数正确传递(仅适配老Lombok版本时用)
如果之前加了--add-exports参数,要确保它传到Maven编译阶段:
要么在pom.xml的maven-compiler-plugin里加:
<configuration> <!-- 其他配置 --> <compilerArgs> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> </compilerArgs> </configuration>
要么直接在命令里传:
mvn clean install -DskipTests -Dmaven.compiler.compilerArgs="--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"
注意:升级到适配的Lombok版本后,一般不需要这些参数。
5. 清理本地Maven仓库缓存
本地仓库里的Lombok包可能损坏,删掉~/.m2/repository/org/projectlombok目录,重新跑构建让Maven重新下载依赖。
6. 排查依赖冲突
用mvn dependency:tree查看依赖树,看看是不是其他依赖引入了旧版本Lombok,有的话就排除掉:
<dependency> <groupId>xxx</groupId> <artifactId>xxx</artifactId> <exclusions> <exclusion> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclusion> </exclusions> </dependency>
内容的提问来源于stack exchange,提问作者Hancy
相关产品推荐
相关产品推荐

