.class 文件中未生成 Lombok 注释

Lombok annotations are not generated in .class file

我正在使用 inteliJ pro 2020,java 11,mavenlombok

在运行mvn clean install之后生成了一个jar。当我检查 jar 中的特定 class 文件时,它有一些 lombok 注释,例如 @Data, @NoArgsConstructor, @Setter,注释丢失了。

例如:

原文class:

import com.fasterxml.jackson.annotation.JsonTypeName;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.Set;
import org.apache.logging.log4j.util.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Data
@Setter
@NoArgsConstructor
@JsonTypeName("Bclass")
@Slf4j
public class B extends A{

.class jar 文件:

import com.fasterxml.jackson.annotation.JsonTypeName;
import java.util.Date;
import java.util.Set;
import org.apache.logging.log4j.util.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@JsonTypeName("Bclass")
    public class B extends A{

lombock 注释和导入消失了。

我当前的 pom 设置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <compilerVersion>11</compilerVersion>
                <release>11</release>
                <annotationProcessors>
                  <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
                </annotationProcessors>
            </configuration>
        </plugin>
    </plugins>
</build>
......
<dependencies>
.....
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>
....

我尝试过的解决方案:

我的目标是为该项目创建一个 jar 并将其导入到另一个项目中。问题是当我将 jar 导入另一个项目时,所有的 lombok 注释都丢失了,我可以使用 get 和 set 方法。 有什么建议吗?

Lombok 注释不应该出现在编译代码中。 lombok 的重点是生成样板代码,但要使编译后的字节码看起来不像样板代码。原因是lombok注解声明中的RetentionPolicy:

@Retention(RetentionPolicy.SOURCE)

表示注释将在编译步骤后删除,不再是字节码的一部分。