6 java spring lombok spring-boot
我知道 Lombok 是什么,它通过使用一些注释来最小化样板代码。Lombok 使用 Java 内部结构在编译时生成等效的 Java 代码[参考]。因此,它在编译时不需要任何显式插件或 Maven/Gradle 构建阶段。
在查看 Spring Boot 项目的 pom.xml 时,我看到下面的插件部分,我想知道这个排除是关于什么的。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
好吧,问题如下:Lombok 是一个注释处理器,Lombok 生成的代码不再依赖于 Lombok。在 Maven 术语中,这意味着对 Lombok 的依赖应该具有provided范围(以便不将 Lombok jar 包含到目标工件中)。不幸的是,Spring 开发人员对于scope= 的依赖关系有另一种看法provided。请检查此对话:Maven需要为托管依赖项指定插件版本 spring-boot-configuration-processor
因此,您的配置显式地从目标工件中删除了 Lombok jar。
| 归档时间: |
|
| 查看次数: |
1455 次 |
| 最近记录: |