Jenkins执行Maven Selenium测试命令报错,请求排查
问题排查与解决方案
核心原因分析
出现lombok.javac.apt.LombokProcessor无法访问com.sun.tools.javac.processing.JavacProcessingEnvironment的IllegalAccessError,大概率是Jenkins构建任务使用的JDK环境与本地/工作区命令行的JDK不一致,或是Lombok版本与JDK版本不匹配,导致Lombok无法访问JDK内部编译API。
具体排查与解决步骤
1. 对齐JDK版本
- 本地执行
java -version、javac -version,记录版本信息 - Jenkins端操作:
- 进入全局工具配置,查看已配置的JDK版本
- 打开构建任务的配置页面,确认任务使用的JDK与本地完全一致(避免使用Jenkins默认JDK,手动配置匹配本地的版本)
- 可在Jenkins构建脚本中添加
java -version和javac -version命令,输出构建时的JDK版本,与本地做对比
2. 调整Lombok依赖与编译配置
确保pom.xml中Lombok版本适配当前JDK,同时补充完整的编译插件配置:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- JDK17建议用1.18.20+版本,按需调整 --> <scope>provided</scope> <optional>true</optional> </dependency>
添加Maven编译插件,明确指定注解处理器路径:
<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. 校准Jenkins Maven环境
- 进入Jenkins全局工具配置,确认Maven版本与本地使用的一致
- 构建任务配置中,选择手动配置的Maven安装(不要依赖系统默认Maven)
- 尝试将构建步骤从“调用顶层Maven目标”改为“执行shell”,直接运行
mvn test,验证是否还会报错(若正常,说明是Maven插件的配置问题)
4. 清理缓存与工作区
- 构建任务页面点击工作区 -> 删除工作区,重新触发构建
- 清理Jenkins的Maven本地仓库缓存(路径通常为
~/.m2/repository或Jenkins配置的自定义仓库)
补充调试方案
若以上步骤无效,可在Jenkins构建的Maven目标中添加JVM参数,允许Lombok访问JDK内部API:
mvn test -Djdk.module.illegalAccess=permit
内容的提问来源于stack exchange,提问作者Subbu
相关产品推荐
相关产品推荐

