java - Spring Initializr生成的项目中的Lombok(LombokProcessor无法初始化)

标签 java builder lombok

我想使用 Lombok 的 ownBuilderMethod 创建一个类。单击Shift+F10(启动应用程序)后,我收到错误:

Warning:(22, 8) java: lombok.javac.apt.LombokProcessor could not be initialized. Lombok will not run during this compilation: java.lang.IllegalArgumentException: com.sun.tools.javac.main.DelegatingJavaFileManager$DelegatingSJFM extends com.sun.tools.javac.main.DelegatingJavaFileManager implements javax.tools.StandardJavaFileManager
    (..)

还有:

Error:(39, 19) java: cannot find symbol
symbol:   class ProfileBuilder
location: class io.github.plkpiotr.fifabackend.model.Profile

没有这个builderMethodName的普通@Builder可以正常工作,但是使用“ownBuilderMethod”则不能。

源代码:

package io.github.plkpiotr.fifabackend.model;

import lombok.*;
import javax.persistence.*;
import javax.validation.constraints.*;
import java.util.UUID;

@Entity
@Table(name = "profiles")
@Data
@Builder(builderMethodName = "ownBuilderMethod")
//@AllArgsConstructor
//@NoArgsConstructor
public class Profile {
    @Id
    private String id;

    @NotNull
    @Pattern(regexp = "^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$")
    private String nick;

    @NotNull
    private String password;

    @NotNull
    @Email
    private String email;

    public static ProfileBuilder builder() {
        return ownBuilderMethod()
                .id(UUID.randomUUID().toString());
    }
}

最佳答案

要解决 LombokProcessor 无法初始化的问题,您必须更改 Maven 中 Lombok 的依赖关系(pom.xml 文件):

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

对于:

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

关于java - Spring Initializr生成的项目中的Lombok(LombokProcessor无法初始化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51281165/

相关文章:

java - 使用JAVA并行流时是否可以按线程传递资源?

java - JsonProperty 不为正文请求赋值

java - 向任意 java bean 添加属性

java - 适合在 Postgres 9 和 Java 中唯一标识一系列数字的校验和

java - 在 mysql 上使用 docker-compose 时遇到问题

java - 扫描仪问题: java. lang.String无法转换为int

linux - 使用 Gnome-Builder 创建新项目

java - 如何在方法上使用 Lombok @Builder 注释

design-patterns - Builder 模式的真实示例

compiler-construction - 使用 `lombok` 注释和 Java JDK 8 在内存中编译 Java 类