带有 Lombok 的 Spring Boot 3

问题描述 投票:0回答:3

将项目从 Spring Boot 2.7 升级到 3.0 后,我得到了

找不到符号

由于 Lombok 生成的代码而导致编译器错误。

有什么方法可以让它协同工作 - Spring Boot 3 和 Lombok 注释。

java spring-boot lombok
3个回答
7
投票

您应该更新到最新版本的 lombok

1.18.24
,它运行时没有问题
spring-boot-3.0.1

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

问题实际上并不是从

spring-boot
发生的,而是从
jdk
发生的,因为
spring-boot-3
需要最低限度的
jdk17
并且旧版本的 lombok 与
jdk17
或更新版本不兼容。

changelog可以看出,

lombok 1.18.22
是第一个兼容jdk17的版本。


4
投票

Lombok版本可以交给Spring来管理。

如果您使用 Maven,这里有一个示例:

<dependencies>
    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
    </dependency>
</dependencies>


<build>
    <finalName>project-name</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>17</source>
                <target>17</target>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

在终端上运行

mvn clean install
进行测试。


0
投票

我有同样的问题,对我来说问题是注释处理不起作用,因为我仅为 jpamodelgen 而不是 lombok 指定了注释处理路径,就像这样

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.13.0</version>
    <configuration>
      <fork>true</fork>
      <compilerArguments>
        <Xmaxerrs>10000</Xmaxerrs>
      </compilerArguments>
        <annotationProcessorPaths>
            <path>
                <groupId>org.hibernate.orm</groupId>
                <artifactId>hibernate-jpamodelgen</artifactId>
            </path>
        </annotationProcessorPaths>
    </configuration>
  </plugin>

删除并且不指定任何路径为我修复了它,或者您可以将所有注释处理器添加到 Maven 插件

© www.soinside.com 2019 - 2024. All rights reserved.