You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI的Maven Docker镜像中配置Provided范围的Lombok依赖

问题说明

你遇到的编译错误本质是GitLab CI环境的Maven编译阶段未触发Lombok注解处理器,和Lombok的provided scope配置无直接关联:provided scope的依赖默认会参与编译阶段的classpath加载,仅不会被打包到最终产物中,符合Lombok的使用场景。

解决方案

1. 修正Pom.xml中Lombok基础依赖配置

首先确保适配JDK8的Lombok版本配置正确,最高支持JDK8的Lombok版本为1.18.30,不要使用更高版本:

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

2. 显式配置Maven编译插件的注解处理器路径

在maven-compiler-plugin的配置中显式声明Lombok为注解处理器,避免Maven自动扫描遗漏:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <annotationProcessorPaths>
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.30</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>

3. 校验GitLab CI使用的Maven镜像版本

确保CI使用的Maven镜像适配JDK8,不要使用高版本JDK的镜像导致Lombok兼容问题,示例.gitlab-ci.yml配置:

image: maven:3.8.6-jdk-8

stages:
  - build

build-jar:
  stage: build
  script:
    - mvn clean package
  artifacts:
    paths:
      - target/*.jar

4. 排除CI命令干扰

检查CI执行的Maven命令是否包含-Dmaven.annotation.processing.skip=true、-Dmaven.compile.skip=true等跳过编译/注解处理的参数,移除这类参数即可。

内容的提问来源于stack exchange,提问作者Smart Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:30:00